grepping 一个进程的 PID - Unix



我正在尝试执行以下命令:

ps aux | grep com.scheduler.app.workermain | kill -15 [pid]

如何使用ps aux | grep "expression"获取[pid](或PID列表)并将其传送到kill?可能有零个或多个进程在运行计算机。这是自动化作业的一部分,以确保所有旋转的流程都将终止。执行 ps aux | grep com.scheduler.app.workermain 时命令行中的示例行为:

jenkins  12373  1.1  4.2 2905440 173628 ?      Sl   19:28   0:05 java -Xmx600m -Dlog4j.configurationFile=log4j2-trace.xml -Dpid=foobar -Dipaddr=127.0.0.1 -cp build/classes:build/dependency/* com.scheduler.app.workermain testing.properties
pkill正是

用于此目的。怎么样:

pkill -15 -f com.scheduler.app.workermain

另外,如果您只想为 PID 进行 grep,您可以使用pgrep

pgrep -f com.scheduler.app.workermain

Pkill 手册页

kill -15 $(ps aux | grep -i com.scheduler.app.workermain | awk -F' ' '{ print $2 }')

可能的解决方案之一是使用 pidof 命令:

kill $( pidof com.scheduler.app.workermain )

附言。无需将-15(或 -TERM)传递给 kill 命令,因为SIGTERM是发送的默认信号。

最新更新