Dosya adları ile çalışan işlemler gösterilsin mi?


12

Sitelerimdeki linux sunucumu bağlamak için macun kullanıyorum.

# ps aux | less

çalışan süreçleri göstermek için. Ama bu süreçleri çalıştıran dosyaları görüntülemek istiyorum?

Ben de denedim

# ps aux | grep <pid>

Ancak bu hatayı alıyorum:

-bash: syntax error near unexpected token `newline'

Bunu yapmanın doğru yolu nedir?


4
içinde grep <pid>, <pid>gerçek işlem kimliğinizle değiştirmeniz gerekir (bu bir sayıdır). <pid>sadece bir yer tutucudur, gerçekten yazmanız gereken bir şey değildir.
Ben Voigt

Yanıtlar:


13

ps aux | grep <pid>bir kabuk komutu değildir. İşaret <pid>, “PID'yi oraya koy” anlamına gelen ortak bir sözleşmedir. Örneğin, PID 1234 ise, çalıştırırsınız ps aux | grep 1234. Bu çok kullanışlı bir komut değil, koşabilirsiniz de ps u 1234.

Sorunuz çok net değil. “Dosya adlarıyla” ne demek istiyorsun? 1234 sürecinin hangi yürütülebilir dosyayı çalıştırdığını görmek istiyorsanız:

ls -l /proc/1234/exe

İşlemin hangi dosyaları açtığını görmek istiyorsanız:

ls -l /proc/1234/fd

Komut satırı içeren tam komut satırını görmek istiyorsanız:

tr '\0' '\n' </proc/1234/cmdline

Komutları kullanmayı tercih ederseniz lsof -p1234, işlemin açık olduğu tüm dosyaları gösterir. ps uww 1234tam komut satırı dahil olmak üzere işlem 1234 ile ilgili çeşitli bilgi parçalarını gösterir.



3

Her şeyden önce, (İşlem Tanımlayıcı) ile temsil edilen ps aux | grep <PID>belirli bir işlemin ayrıntılarını göstermek istediğinizde kullanışlıdır .PID<PID>

Örneğin, ( ps aux | grep 'firefox\|USER'aracı contein sadece çizgiler baskı firefoxya da USER):

ps aux | grep 'firefox\|USER'
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
terdon  9021  2.5 11.8 1950888 970832 ?      Sl   Apr03 108:41 /opt/firefox/firefox

Yani, benim için PID firefoxÖrneğin Yani, kaçak çalıştığınız komutunu kullanmak, ben yerini alacak 9021. olduğu <PID>ile 9021:

ps aux | grep 9021
terdon  9021  2.5 11.5 1948776 942640 ?      Sl   Apr03 109:03 /opt/firefox/firefox

Şimdi, "bu işlemleri çalıştıran dosyaları göster" ile ne demek istediğinizden emin değilim. Bu işlemlerin hangi dosyaları kullandığını görüntülemek istiyorsanız ps aux, bunu yapmanın bir yoludur. Diyelim ki /usr/share/doc/nano/faq.htmlbu komutu kullanarak dosyayı açtım :

 firefox /usr/share/doc/nano/faq.html 

Hangi dosyayı firefoxkullanarak açmış görebiliyordu ps:

ps aux | grep firefox
terdon   31763 18.7  1.0 682916 84352 pts/10   Sl+  17:10   0:02 firefox /usr/share/doc/nano/faq.html

Açılan dosya, firefox'a iletilen bağımsız değişkenlerden biri olarak gösterilir. PID'nin farklı olduğunu unutmayın (şimdi 31763bunun yerine 9021), çünkü çalışan her programın kendine özgü PID'si vardır.


Başka bir yararlı komut top. -cAnahtarla çalıştırırsanız , bir komuta iletilen bağımsız değişkenleri ve -u <your user>yalnızca kullanıcı adınızla başlatılan işlemleri gösterir ( <your user>gerçek kullanıcı adınızla değiştirin ):

top -c -u terdon

Bu, yerel makinemdeki çıktıdır (kullanıcı terdonyalnızca iki işlem çalıştırıyor):

top - 17:14:41 up 3 days, 49 min, 14 users,  load average: 0.48, 0.54, 0.55
Tasks: 228 total,   1 running, 226 sleeping,   0 stopped,   1 zombie
%Cpu(s):  7.1 us,  5.5 sy,  0.0 ni, 86.5 id,  0.0 wa,  0.0 hi,  0.9 si,  0.0 st
KiB Mem:   8187940 total,  8007220 used,   180720 free,   349264 buffers
KiB Swap:  8191996 total,     5556 used,  8186440 free,  4173004 cached

  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND                                                       
31573 terdon    20   0 24900 5576 1684 S   0.0  0.1   0:00.20 bash                                                          
31763 terdon    20   0  666m  77m  28m S   0.0  1.0   0:02.39 firefox /usr/share/doc/nano/faq.html                          

Tarafından gösterilen bilgilerin açıklaması için SU ile ilgili soruya verdiğim cevabatop bakınız .


0

kabuk altındaki bazı karakterler <>? "; ...

grep PID yararlı değil çünkü PID işlem kimliği ve grep benzer sayısal bulacaktır ...

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.