kill -TERM -PID
应该杀死PID及其所有子进程。
但这在openSUSE上不起作用,它总是告诉我,无论我使用什么PID,都没有这样的过程-PID。
因此,如果此特定版本的kill不支持负PID选项,那么杀死一组进程的最佳方法是什么?
背景:
我正在运行一个shell脚本。在脚本中,我使用wget下载内容。因此,脚本是父进程,wget是子进程。我想使用kill -TERM -PID_OF_SCRIPT杀死它们
它说“没有这样的PID”还是有错误-像这样工作吗?
kill -TERM -- -GPID
还要注意,按照(强调我的)
男人1:
“ […]当给出形式为'-n'的参数时,它表示进程组[...]。
男人2:
“ [...]如果pid小于-1,则将sig发送到ID为-pid的进程组中的每个进程。 […]”
男人3:
“ […]如果pid为负,但不是-1,则sig应发送到其进程组ID等于pid的绝对值的所有进程(不包括未指定的系统进程集),[...]”
与之类似,不是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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句