我正在通过Jenkins在linux shell上执行pkill命令。 当进程不存在时,此命令始终无法构建。
sudo docker exec mycontainer sh -c 'pkill -f processToKill || true '
为什么呢?即使pkill失败,我怎样才能成功呢?
答案 0 :(得分:4)
你自杀了 - 永远无法触及|| true
部分:
$ sh -c 'pkill -f processToKill || true' ; echo $?
Terminated
143
原因是您向-f
提供的pkill
标记。从联系人页面:
-f, --full
The pattern is normally only matched against the process name.
When -f is set, the full command line is used.
您需要改进pkill语句的进程选择,因此它不会捕获您传递给sh
的命令行。