我如何根据进程名称终止进程?

我如何根据进程名称终止进程?

我正在寻找一种根据进程名称('job_runner_')终止进程的方法。这是我目前所做的,我运行以下命令: ps -ef |grep job_runner_然后kill -9在返回的每个进程上运行(可能会返回多个进程)。

我怎样才能通过单个命令完成此操作?

答案1

killall提到的是在psmisc软件包中(至少在基于 Debian 的安装中如此命名)。另一种选择是,pkillprocps软件包中。


你应该使用专门为此目的而制作的工具。如果你真的、真的、真的想通过解析ps输出来实现这一点,你可以这样做

ps -ao pid,comm | awk '/job_runner_/{system("kill "$1)}'

答案2

全杀会为您完成此事。

姓名

killall—按名称终止进程

请注意,该-r选项将把名称解释为正则表达式,从而满足您终止多个类似名称进程的要求。

还请注意,最好不要使用 -9 选项立即终止进程。而应使用常规终止,因为它将使进程有机会捕获该信号、执行任何清理,然后干净地退出。使用 -9 不会让进程这样做,并且只应将其用于麻烦/无响应的进程。

答案3

只需使用pkill job_runner_

您还可以使用 按名称检查进程pgrep job_runner_

答案4

ps -ef | grep job_runner_ | xargs kill -9

尝试一下这个。

相关内容