如何仅终止正在运行的进程?

如何仅终止正在运行的进程?

目前,我在我的 sh 脚本文件中使用了如下一行:

kill $(ps aux | grep -F 'myServer' | grep -v -F 'grep' | awk '{ print $2 }')

myServer但我想知道只有当进程(这里)正在运行时才如何调用它?

答案1

我通常只使用 pgrep 和 pkill

if pgrep myServer; then pkill myServer; fi

答案2

您可以使用pkill或按名称终止进程killall,并检查其手册页。

答案3

稍微不同的方法是这样的:

killall PROCESS || echo "Process was not running."

如果进程不存在,这将避免命令1返回错误代码。只有当返回时,该部分才会起作用,而其本身将返回(成功)。killallechokillall10

答案4

pkill与选项一起使用-f

pkill -f myServer

选项-f是通常与进程名称匹配的模式。

相关内容