
オンラインのフラッシュカードで、コマンドは次の通りだと読みました。
pkill -u bob $(pgrep -u bob)
しかし、これは間違っていると思います。次のように言っていると思います。
が所有するプロセスをすべて終了し
bob
、4572\n4600
なぜなら:
[bob@localhost ~]$ pgrep -u bob
4572
4600
また、エラーが発生します:
[bob@localhost ~]$ pkill -u bob $(pgrep -u bob)
pkill: only one pattern can be provided
Try `pkill --help' for more information.
ユーザー名に改行を入れることはできないので、これは理にかなっていますよね?
コマンドは次のようになると思います:
pkill -u bob
「bobが所有するすべてのプロセスを強制終了する」
コマンド:
pgreg -u bob
「bobが所有するすべてのプロセス」を返します
不思議なんだけど:
- 意図したとおりに正しいコマンドを使用していますか?
- 間違った方法の私の分析は正確でしょうか?
答え1
あなたは正しいです
間違っている: pkill -u bob $(pgrep -u bob)
正しい:pkill -u bob
フラッシュカードはおそらく次のことを示すことを意図しています:
kill $(pgrep -u bob)
これにより、 によって返されたすべてのプロセスが強制終了されますpgrep -u bob
。