pkillセルフシャットダウン(および親プロセス)は持続しますか?

pkillセルフシャットダウン(および親プロセス)は持続しますか?

私はいくつかの基準に基づいて選択された複数のプロセスを終了し、終了するbashスクリプトを書いています。唯一の問題は、これらの基準がスクリプトとその親プロセス(bash、、sshd)自体に適用されるため、タスクが完了する前にスクリプトが終了するのを防ぐために最初に一致するプロセスを取得し、次にスクリプトとその親psプロセスをフィルタリングsedし、最後にKill the残りのプロセスを使用して終了しますkill

今、これが単一の呼び出しに減らすことができるかどうか疑問に思いますpkill。しかし、明らかにそれはpkill自分自身と親プロセスを終了することが保証されている場合にのみ機能します。最後終了するプロセスのリストに表示されます。

そのような保証は実装されていますかpkill

ベストアンサー1

pkillpgrep神経が自らそうするように決して自殺しないでくださいpkill出口すべての適格プロセス(自分を除く)を終了した後。pkill資格がある場合、親を殺すが親がシェルの場合は無視できない信号(通常は-9、つまり-[SIG] KILL)を使用しない限り、シェルは通常これを無視します。が含まれている場合、sshdセッションはもちろんシェルや(ほとんど?)他のプロセスも終了しますが、これは通常望ましくありません。

pgrepあなたは使いたいかもしれません探すまたはを使用してプロセスを実行し-l-lf実行する前に追加のチェックを実行します。kill

おすすめ記事