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
ドキュメント()に記載されており、簡単な実験で確認できます。次の例を考えてみましょう。
端末で次を実行します。
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中断可能なスリープ(イベントが完了するまで待機)
+フォアグラウンドのプロセスグループ
量子電気力学
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
)で動作します。