「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'

おすすめ記事