linux - 通过 Jenkins 在 shell 中执行 "pkill"- 构建失败

标签 linux shell jenkins

我正在通过 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

原因是您提供给pkill-f 标志。来自手册页:

   -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/

相关文章:

mysql - 在 Linux 命令行上自动刷新 MySQL 查询

linux - 在 shell 脚本中获取命令输出

jenkins - 为什么 Jenkins 2.124 上找不到 s3Upload 构建步骤

linux - Jenkins 在 linux 中启动失败

php - 如何在php中显示系统正常运行时间?

linux - 尝试将 S3 存储桶装入 Ubuntu 14.04 EC2 实例时出错

bash - 等到 bash 中的条件变为真

regex - 在 Jenkins 全局构建统计中使用正则表达式

c++ - GLIBCXX 版本

linux - 如何提示用户输入 sudo 密码?