pkill 会最后杀死自己(及其父进程)吗?

smh*_*ich 4 linux bash process kill

我正在编写一个 bash 脚本,它会杀死一堆按某些标准选择的进程,然后退出。唯一的问题是这些标准适用于脚本及其父进程(bashsshd)本身,因此为了避免在脚本完成工作之前杀死脚本,我首先获取与 匹配的进程ps,然后过滤掉脚本及其父母用sed,最后用 杀死剩余的进程kill

现在我想知道是否可以将其简化为单个pkill调用,但显然,只有在保证最后pkill杀死自身及其父进程(如果它们出现在要杀死的进程列表中)的情况下,这才有效。

是否有这样的保证落实到pkill

dav*_*085 6

pkill永远不会自杀,就像pgrep神经列出自己一样;杀死每个符合条件的进程后退出(除了它自己)pkill。如果它(它们)符合条件,则会杀死其父级,但如果父级是 shell,除非您使用不可忽略的信号(通常只有 -9 又名 -[SIG]KILL),否则 shell 通常会忽略它。如果它包含你的,确实会杀死你的会话,以及你的 shell 和(大多数?)其他进程,这通常是不受欢迎的。pkillsshd

您可能希望使用或pgrep查找进程,并在使用它们之前进行其他检查。-l-lfkill