
ps を使ってバックグラウンドプロセスを見ることができます。しかし、フォアグラウンドプロセスを見る方法はありますか? たとえば、
$nohup プロセス1 &
それから
ps -ef | grep "プロセス1"
実行中のプロセス「process1」が表示されます。しかし、上記のコマンドでは、次のようにフォアグラウンドプロセスが実行されているかどうかは表示されません。
$プロセス2
答え1
デフォルトでは、同じターミナル ウィンドウから開始されたプロセスなど、呼び出されたのとps
同じターミナル上にあるプロセスが表示されるため、混乱する可能性があります。ps
ps -u $LOGNAME
端末名がわかっている場合は、 または を試してくださいps -t $THETTYNAME1,$THETTYNAME2
。(端末名は通常、「ttyN」または「pts/N」のようになります)。
答え2
奇妙なことに、ps コマンドを使用すると、フォアグラウンドとバックグラウンドの両方のすべてのアクティブなプロセスのステータスを監視できます。
たとえば、最初のシェルで次のプロセスを開始します。
$ startNetworkServer
Security manager installed using the Basic server security policy.
Apache Derby Network Server - 10.3.2.1 - (599110) started and ready to accept connections on port 1527 at 2010-06-18 14:14:33.277 GMT
そして別のシェルでは:
$ ps aux | grep NetworkServer | grep -v grep
pascal 5928 0.3 1.4 661492 29216 pts/0 Sl+ 16:14 0:03 /usr/lib/jvm/java-6-sun/bin/java -classpath /usr/share/javadb/lib/derby.jar:/usr/share/javadb/lib/derbynet.jar:/usr/share/javadb/lib/derbytools.jar:/usr/share/javadb/lib/derbyclient.jar org.apache.derby.drda.NetworkServerControl start
プロセスは期待どおりにリストされます (+
フォアグラウンド プロセス グループ内にあることが示されます)。
答え3
質問:
「フォアグラウンドプロセスを表示する方法はありますか?」質問はその後、ps -ef
フォアグラウンドで実行されているプロセスが表示されないと主張し続けます。
答え:
はい、方法があります。また:ps -ef
するフォアグラウンドで実行中のプロセスを表示 -しかし、それは示されていない州プロセスのこれはドキュメント ( man ps
) で説明されており、簡単な実験で検証できます。次の例を考えてみましょう。
1 つのターミナルで、次を実行します。
ping 8.8.8.8 > /dev/null
別の端末で:
ps -ef | grep ping | grep -v grep
seamus 1161 974 0 23:20 pts/1 00:00:00 ping 8.8.8.8
ps -ef
提供されないことに注意してください州出力に情報が含まれている。しかしman ps
、州情報利用可能です-o
キーワードと一緒に引数を使用するstat
:
ps -eo pid,stat,command | grep ping | grep -v grep
1161 S+ ping 8.8.8.8
これは次のことを物語っています:
- プロセスPIDは
1161
キーワード経由pid
- プロセス州
S+
キーワード経由stat
- キーワードはプロセスの生成を
command
示しますping 8.8.8.8
の州の値S+
は解読されたman ps
の見出しの下には、PROCESS STATE CODE
次のことが書かれています。
S 割り込み可能スリープ(イベントの完了を待機中)
+フォアグラウンドプロセスグループ内
QED
はps -ef
PIDが であるプロセスをリストし1161
、ps -eo pid,stat,command
は州PID1161
の前景プロセス。
注1: キーワード引数については、の見出しの下-o
で説明されています。ここでは、キーワードが2文字のプロセスを生成することが説明されています。man ps
STANDARD FORMAT SPECIFIERS
stat
州キーワードはstate
1文字のみを返します州。
注2:これは、私の Debian ベースのシステム (バージョン として報告されていますps from procps-ng 3.3.15
) と、macOS 10.15 (BSD バージョンの から派生ps
) で動作します。