「ps」または「ps -ef」コマンドの出力で、プロセスがバックグラウンドで実行されているかフォアグラウンドで実行されているかを知るにはどうすればよいですか?

「ps」または「ps -ef」コマンドの出力で、プロセスがバックグラウンドで実行されているかフォアグラウンドで実行されているかを知るにはどうすればよいですか?

psコマンドまたはでプロセスがバックグラウンドで実行されているかフォアグラウンドで実行されているかを知るにはどうすればよいですかps -ef?

と入力するとps -ef、TTY というセクションがあると思いました。TTY のリストを確認すると、ほとんどが です?。この疑問符は、バックグラウンドで実行されているプロセスを意味するのでしょうか。

私が正しいかどうか確認したいです。そうでない場合、プロセスがバックグラウンドで実行されているかフォアグラウンドで実行されているかを確認する方法を知りたいです。

ps. コマンドはjobsここでは使用されません。

答え1

フィールドstat+フォアグラウンドプロセス用の追加機能がある:

ps -e -o pid,tty,stat,cmd

フォアグラウンド プロセスとは、プロセス グループ ID ( pgid) がターミナル ( tpgid) 上のフォアグラウンド プロセスであるプロセスです。

ps -e -o pid,pgid,tpgid,tty,cmd | awk '$2==$3'

TTYのリストを見ると、ほとんどが「?」(疑問符)です。その疑問符はバックグラウンドで実行されているプロセスを意味するのでしょうか?

いいえ、それは制御端末(デーモンやカーネルスレッド、フォアグラウンドでもバックグラウンドでもない)がないことを意味します。背景プロセス:

ps -e -o pid,pgid,tpgid,tty,cmd | awk '$3!=-1 && $2!=$3'

答え2

OP は、「プロセスがバックグラウンドで実行されているかフォアグラウンドで実行されているかをどのように知ることができますか?」と質問しました。

前景と背景の状態プロセスpsとして報告されているプロセスの。man psこれらをリストしますプロセス状態の見出しの下にPROCESS STATE CODE

ps -efプロセスの状態を報告しませんが、セクションを参照すると、引数は1つ以上の出力を指定するために使用できることがman psわかります。OUTPUT FORMAT CONTROL-opsキーワード。 これらキーワードセクションにリストされておりSTANDARD FORMAT SPECIFIERS、並外れた粘り強さで、最終的にs、、キーワードstatstateリストされていることに気づくでしょう。しかし、これら3つすべてがキーワード提供します出力では、stat キーワードをお伝えしますmulti-character process state!要点:ps勤勉なユーザーに有利

例えば、次のpsコマンドは、ピッド、 そしてその指示プロセスを開始したキーワード pidstatそしてcommand

ps -eo pid,stat,command

これがどのように機能するかを確認するには、次の例を検討してください。

1 つのターミナルで、次のコマンドを実行します。

ping 8.8.8.8 > /dev/null

別の端末で:

ps -eo pid,stat,command | grep ping | grep -v grep
12518 S+   ping 8.8.8.8

それは私たちに次のことを伝えます:

  • PIDは12518
  • プロセスS+キーワード経由)stat
  • commandこのプロセスを生み出したのはping 8.8.8.8

このプロセスがフォアグラウンドかバックグラウンドかを知るには、もう1つのステップが必要です。の値S+解読されたman psの見出しの下にはPROCESS STATE CODE、次のことが書かれています。

S 割り込み可能スリープ(イベントの完了を待機中)
+フォアグラウンドプロセスグループ内

+その結果、 2番目の文字の位置から、このプロセスが実行中であることがわかります。前景バックグラウンドプロセスは、最初の文字位置に が記述されS、2 番目の文字位置には何も記述されない場合があります。バックグラウンドプロセスを示す文字の組み合わせは他にもいくつかあります。これリストについては。


ちなみに:これは、私の Debian ベースのシステム (バージョン として報告されていますps from procps-ng 3.3.15) と、macOS 10.15 (BSD バージョンの から派生ps) で動作します。

関連情報