myW*_*SON 19 command-line bash kill
目前我在我的 sh 脚本文件中使用这样的行:
kill `ps aux | grep -F 'myServer' | grep -v -F 'grep' | awk '{ print $2 }'`
Run Code Online (Sandbox Code Playgroud)
但我想知道只有在进程(myServer这里)正在运行时如何调用它?
bou*_*555 26
我通常只使用 pgrep 和 pkill
if pgrep myServer; then pkill myServer; fi
Run Code Online (Sandbox Code Playgroud)
有点不同的方法是这样的:
killall PROCESS || echo "Process was not running."
Run Code Online (Sandbox Code Playgroud)
如果进程不存在,这将避免1从killall命令返回的错误代码。该echo部分仅在killall返回1时才会生效,而其本身将返回0(成功)。
小智 -1
尝试使用:
sudo kill `pidof process_name`
Run Code Online (Sandbox Code Playgroud)
其中 process_name 是您要终止的进程的名称。这样做的好处是 pidof 会列出与给定名称匹配的所有进程的 pid。由于 Kill 接受多个 pid,因此它会一次性杀死所有这些 pid。
让我知道这是否有帮助。