実行中のプロセスとファイル名を表示しますか?

実行中のプロセスとファイル名を表示しますか?

私はパテを使って私のサイトを持つ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'):firefoxUSER

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はfirefox9021です。したがって、実行したいコマンドを使用するには、次のよう<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は互いに異なりました317639021これは、実行中の各プログラムに固有のPIDがあるためです。


もう一つの便利なコマンドはですtop-cスイッチを使用して実行すると、コマンドに渡された引数が表示され、ユーザー-u <your user>名で始まるプロセスのみが表示されます(<your user>実際のユーザー名に置き換えられます)。

top -c -u terdon

これは私のローカルコンピュータからの出力です(ユーザーはterdon2つのプロセスのみを実行しています)。

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 は次のような数字を探します。

関連情報