grepping进程的PID - Unix

时间:2016-02-02 19:48:37

标签: linux bash unix grep pipe

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

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

如何使用[pid]获取PID(或ps aux | grep "expression"列表)并将其传递给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

3 个答案:

答案 0 :(得分:2)

pkill用于此目的。怎么样:

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

另外,如果你只想要一个PID,你可以使用pgrep

pgrep -f com.scheduler.app.workermain

pkill man page

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

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

PS。您不需要将-15(或-TERM)传递给kill命令,因为SIGTERM是发送的默认信号。

相关问题