「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(pgidtpgidが端末()のフォアグラウンドプロセスであるプロセスです。

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

TTYのリストを見ると、ほとんど「?」(疑問符)なのですが、疑問符がバックグラウンドで実行されているという意味なのか気になります。

いいえ、これはtty(フォアグラウンドまたはバックグラウンドのデーモンまたはカーネルスレッド)を制御しないことを意味します。次のリストの場合背景プロセス:

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

答え2

OPが質問しました。 「...プロセスがバックグラウンドで実行されているのか、フォアグラウンドで実行されているのか、どうすればわかりますか?」

前景と背景の状態プロセスps次のように報告された状態のコース。man psこれらをリストしてみてくださいプロセス状態タイトルの下にPROCESS STATE CODE

ps -efプロセスのステータスは報告されませんが、見つかったman psセクションを参照すると、パラメータを使用して1つ以上の出力を指定できます。OUTPUT FORMAT CONTROL-opsキーワード。これらキーワードSTANDARD FORMAT SPECIFIERSセクションに記載されている、格別な忍耐で、人々は最終的に記載されている、とsキーワードstatstate見つけるでしょう。しかし、これら3つを参考にしてください。キーワード提供される状態出力には次の内容のみがあります。stat キーワード私を与えるmulti-character process state!キーポイント:ps勤勉なユーザーに最適

例えば、次のpsコマンドが出力されます。PID、これ状態、しかも注文する次のコマンドを使用してプロセスを開始します。キーワード pidstatそしてcommand

ps -eo pid,stat,command

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

端末で次のコマンドを実行します。

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)で動作します。

関連情報