このコマンドを実行すると、ps awx | grep -v grep
次の出力が生成されます。次のリストは、出力全体の最後の20行です。
4247 pts/1 Ss+ 0:00 /bin/bash
4442 ? S< 0:00 [kworker/u17:1]
4661 ? S< 0:00 [kworker/u17:3]
4731 ? S< 0:00 [kworker/u17:5]
4734 ? S 0:00 pickup -l -t fifo -u
4847 ? S< 0:00 [kworker/u17:7]
4850 ? S 0:00 [kworker/u16:3]
4878 ? S 0:00 [kworker/u16:0]
5201 ? S< 0:00 [kworker/u17:8]
5353 ? S 0:00 [kworker/0:1]
5354 ? S 0:00 [kworker/7:2]
5355 ? S 0:00 [kworker/u16:2]
5361 ? S 0:00 [kworker/4:0]
5362 tty1 Ss 0:00 -bash
5396 ? S 0:00 [kworker/6:0]
5418 ? S 0:00 [kworker/0:0]
5420 ? S 0:00 [kworker/2:2]
5431 ? S 0:00 [kworker/7:0]
5562 ? S 0:00 [kworker/4:2]
5620 tty1 R+ 0:00 ps awx
ps awx | grep grep
後続のコマンドを実行すると、次の出力が生成されます。
5646 tty1 S+ 0:00 grep --color=auto grep
また、次のコマンドを実行すると、次のps awx | grep agetty
出力が表示されます。
5669 tty1 S+ 0:00 grep --color=auto agetty
コマンドがps awx
プロセス識別番号5646と5669を表示しないのはなぜですか?実際、5620以降は他のプロセスはリストされません。
ベストアンサー1
ps awxコマンドがプロセス識別番号5646と5669を表示しないのはなぜですか?
なぜなら、あなたはただ5646
注文の一部としてps awx | grep grep
、そして注文の一部と5669
して始めたからです。ps awx | grep agetty
最初のリストの後に始まるので、リストには表示されません。どちらもその特定のパイプのプロセスへの入力が処理されるまで実行されるため、将来のps
リストには表示されません。
同様ps
に繰り返し実行すると、プロセスIDが変更されていることがわかります。コマンドを実行するたびに新しいプロセスが開始されます。
より具体的には、問題の2番目のプロセスは次のとおりです。
5669 tty1 S+ 0:00 grep --color=auto agetty
これにはパラメータとがすでにgrep
提供されています。これはのコマンドと一致し、フラグはエイリアスから来ることができます。これはプロセスではありません。そのうちの1つは、Debianシステムのこの例のように、コマンドラインの最初の部分として、またはを持つことができます。--color=auto
agetty
grep
ps awx | grep agetty
--color=auto
agetty
agetty
/sbin/agetty
1269 tty3 Ss+ 0:00 /sbin/agetty --noclear tty3 linux