PuTTYを使用して、自分のサイトがあるLinuxサーバーに接続しています。
# ps aux | less
実行中のプロセスを表示します。しかし、これらのプロセスを実行しているファイルを表示したいですか?
私も試しました
# ps aux | grep <pid>
しかし、このエラーが発生します:
-bash: syntax error near unexpected token `newline'
それを行う正しい方法は何ですか?
ps aux | grep <pid>
はシェルコマンドではありません。表記<pid>
は、「そこにPIDを置く」ことを意味する一般的な規則です。たとえば、PIDが1234の場合、ps aux | grep 1234
を実行します。これはあまり便利なコマンドではありません。ps u 1234
を実行することもできます。
あなたの質問はあまり明確ではありません。 「ファイル名付き」とはどういう意味ですか?プロセス1234が実行している実行可能ファイルを確認する場合:
ls -l /proc/1234/exe
そのプロセスが開いているファイルを確認する場合:
ls -l /proc/1234/fd
引数付きの完全なコマンドラインを表示する場合:
tr '\0' '\n' </proc/1234/cmdline
コマンドを使用したい場合、lsof -p1234
はプロセスが開いているすべてのファイルを表示します。 ps uww 1234
は、完全なコマンドラインを含む、プロセス1234に関するさまざまな情報を示します。
以下を実行してみてください:
ps -ef
まず、ps aux | grep <PID>
は、 PID
(プロセス識別子)が<PID>
で表される特定のプロセスの詳細を表示する場合に便利です。
たとえば、(ps aux | grep 'firefox\|USER'
は、firefox
または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
したがって、firefox
instanceのPIDは9021です。したがって、実行しようとしているコマンドを使用するには、<PID>
を9021
に置き換えます。
ps aux | grep 9021
terdon 9021 2.5 11.5 1948776 942640 ? Sl Apr03 109:03 /opt/firefox/firefox
さて、「これらのプロセスを実行しているファイルを表示する」という意味がわかりません。これらのプロセスが使用しているファイルを表示する場合は、ps aux
がその1つの方法です。次のコマンドを使用して、ファイル/usr/share/doc/nano/faq.html
を開いたとします。
firefox /usr/share/doc/nano/faq.html
firefox
を使用して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
開かれたファイルは、firefoxに渡される引数の1つとして表示されます。 PIDが異なることに注意してください(現在は31763
ではなく9021
になっています)。これは、実行中のすべてのプログラムに固有のPIDがあるためです。
別の便利なコマンドはtop
です。 -c
スイッチを指定して実行すると、コマンドに渡された引数が表示され、-u <your user>
を使用すると、ユーザー名で開始されたプロセスのみが表示されます(<your user>
を実際のユーザーに置き換えます名前):
top -c -u terdon
これは私のローカルマシンでの出力です(ユーザーterdon
は2つのプロセスしか実行していません)。
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
top
によって表示される情報の説明については、SUの関連する質問の my answer を参照してください。
シェルの下の一部の文字は、<>? 「; ...
pIDはプロセスIDであり、grepは同様の数値を検出するため、grep PIDは役に立ちません...