目前,我在我的 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
返回错误代码。只有当返回时,该部分才会起作用,而其本身将返回(成功)。killall
echo
killall
1
0
答案4
pkill
与选项一起使用-f
pkill -f myServer
选项-f
是通常与进程名称匹配的模式。