コマンドまたはプロセスがバックグラウンドで実行されているのか、フォアグラウンド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のリストを見ると、ほとんど「?」(疑問符)なのですが、疑問符がバックグラウンドで実行されているという意味なのか気になります。
いいえ、これはtty(フォアグラウンドまたはバックグラウンドのデーモンまたはカーネルスレッド)を制御しないことを意味します。次のリストの場合背景プロセス:
ps -e -o pid,pgid,tpgid,tty,cmd | awk '$3!=-1 && $2!=$3'