Diskte aynı uygulamanın birden fazla kopyası varsa ve görebildiğim kadarıyla yalnızca biri çalışıyorsa, onu diğerlerinden ayırmanın mutlak yolunu psnasıl bilebilirim ?
Diskte aynı uygulamanın birden fazla kopyası varsa ve görebildiğim kadarıyla yalnızca biri çalışıyorsa, onu diğerlerinden ayırmanın mutlak yolunu psnasıl bilebilirim ?
Yanıtlar:
% sudo ls -l /proc/PID/exe
Örneğin:
% ps -auxwe | grep 24466 kök 24466 0.0 0.0 1476 280? S 2009 0:00 denetle sshd % sudo ls - l / proc / 24466 / exe lrwxrwxrwx 1 kök kökü 0 Şub 1 18:05 / proc / 24466 / exe -> /package/admin/daemontools-0.76/command/supervise
ls: cannot read symbolic link /proc/28783/exe: Permission denied- bu lskomutu çalıştırmakla ilgili değil, size ait olmayan bir işlemin işlem bilgisine erişmekle ilgili. Kutumda / proc'ta listelenen tüm işlemlerin yaklaşık% 97'si kök işlemlerdir ve diğerleri 11 farklı kullanıcıya dağılmıştır.
kullanın:
pwdx $pid
Bu size mutlak yolu değil, mevcut iş akdinin dizinini verir.
Genellikle whichkomut size hangisinin kabuktan çağrıldığını söyler:
#> which vlc
/usr/bin/vlc
$pidnedir?" Sorusunu yanıtlar. Düzenlenen yayın hala soruyu cevaplamıyor. whichSadece "Eğer komut yolda ise, o zaman nedir?"
pwdxBana redhat x64 6.3 üzerindeki pid'e bağlı olarak, sürecin ayrılabilir programının mutlak yolunu geri döndür.
Tek yönlü ps -ef
ps auxwwwe
Kaynak:
https://serverfault.com/questions/62322/getting-full-path-of-executables-in-ps-auxwww-output
Hızlı cevap, psseçeneklerle veya /procdosya sistemi bilgileriyle kullanmaktır. Bu genellikle işe yarar, ancak garanti edilmez. Genel olarak kesin ve garantili bir cevap yoktur. Örneğin, yürütme dosyası yürütme sırasında silinirse, dosyanın yolu kalmayacaksa?
Daha fazla ayrıntı için Unix SSS bölümüne bakın , özellikle de 4.3 ve 4.4 numaralı sorular.
lsof bir seçenek. Aşağıdaki gibi bir şey deneyebilirsiniz:
lsof -p PROCESS_ID
Bu, çalıştırılabilir dosyanın gerçek konumu dahil olmak üzere işlem tarafından açılan tüm dosyaları listeler. Ardından aradığınız bilgiyi bulmak için birkaç tane daha awk, cut, grep vb. Eklemek mümkündür.
Örnek olarak, 'java' işlemimin nereden geldiğini belirlemek için aşağıdaki komutları uyguladım:
lsof -p 12345 | awk '{print $ NF}' | grep 'java $'
lskomutu çalıştırmak için süper kullanıcı olmanıza gerek yok .