負のPIDを使用して一連のプロセスを終了する

負のPIDを使用して一連のプロセスを終了する
kill -TERM -PID 

PIDとすべての子プロセスを終了する必要があります。
しかし、これはopenSUSEでは機能しません。どのPIDを使用しても、常にそのようなプロセスPIDがないことを伝えます。
したがって、この特定のバージョンのkillが負のPIDオプションをサポートしていない場合、プロセスグループを終了する最良の方法は何ですか?

背景:
シェルスクリプトを実行しています。スクリプトはwgetを使用してものをダウンロードします。したがって、scriptは親プロセスであり、wgetは子プロセスです。 kill -TERM -PID_OF_SCRIPT を使って殺したい。

ベストアンサー1

「該当するPIDなし」と表示されていますか?それともエラーがありますか? - 動作しますか?

kill -TERM -- -GPID

また(強調内)によると
男1:

"[...] '-n' 形式の引数が指定された場合、これは次を示すためのものです。プロセスグループ[… ]」

男2:

"[...] pid が -1 より小さい場合、プロセス内のすべてのプロセスに sig が送信されます。IDが-pidのプロセスグループ。[… ]」

男3:

「[...] pidが負であるが-1でない場合、sigは以下を実行するすべてのプロセス(未指定のシステムプロセスセットを除く)に送信されます。プロセスグループIDpidの絶対値と同じです。 [… ]」

たとえば、PIDではなくプロセスグループIDです。


そうでなければ楽しく遊べると思います。/proc/[pid]/stat

ppid: awk '{gsub(/\([^)]+\)/,"_"); print $4}' /proc/3955/stat
pgrp: awk '{gsub(/\([^)]+\)/,"_"); print $5}' /proc/3955/stat

pkill -TERM -g PGRP

おすすめ記事