我正在通过Jenkins在Linux Shell上执行pkill命令。
当进程不存在时,此命令将始终使构建失败。

sudo docker exec mycontainer sh -c 'pkill -f processToKill || true '

为什么?即使pkill失败,如何使它成功?

最佳答案

您正在自杀-|| true部分将永远无法到达:

$ sh -c 'pkill -f processToKill || true' ; echo $?
Terminated
143

原因是您提供给-fpkill标志。从联机帮助页:
   -f, --full
          The pattern is normally only matched against the process name.
          When -f is set, the full command line is used.

您需要改善pkill语句的过程选择,因此它不会捕获传递给sh的命令行。

关于linux - 通过Jenkins在shell中执行 “pkill”-构建失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37930295/

10-13 05:40