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 ps
nası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 ps
nası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 ls
komutu ç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 which
komut size hangisinin kabuktan çağrıldığını söyler:
#> which vlc
/usr/bin/vlc
$pid
nedir?" Sorusunu yanıtlar. Düzenlenen yayın hala soruyu cevaplamıyor. which
Sadece "Eğer komut yolda ise, o zaman nedir?"
pwdx
Bana 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, ps
seçeneklerle veya /proc
dosya 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 $'
ls
komutu çalıştırmak için süper kullanıcı olmanıza gerek yok .