私はパテを使って私のサイトを持つLinuxサーバーに接続しています。私は走ることができます
# ps aux | less
実行中のプロセスを表示します。しかし、どのファイルがこれらのプロセスを実行しているかを表示したいですか?
私も試しました
# ps aux | grep <pid>
ただし、次のエラーが発生します。
-bash: syntax error near unexpected token `newline'
正しいアプローチは何ですか?
答え1
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に関するさまざまな情報を表示します。
答え2
次のコマンドを実行してみてください。
ps -ef
答え3
まず、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
したがって、私のインスタンスのPIDはfirefox
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に関する質問です。
答え4
シェルの下の一部の文字は<>? ;
grep PID は PID がプロセス ID であるため役に立たず、grep は次のような数字を探します。