java - 无法从 jenkins 作为后台进程运行 nohup 命令

标签 java linux unix jenkins nohup

更新:根据下面的讨论,我编辑了我的答案以获得更准确的描述。

我正在尝试从 jenkins 运行 nohup 命令。完整的命令是

nohup java -jar /home/.../jar/server-process-0.35.jar prod >> /var/../server-process-prod.log 2>&1 &

这个命令不起作用。我可以在 jenkins 中看到状态为成功,但在 linux 中没有 java 进程。当我执行 'ps -ef | grep java'

然而,当我删除最后一个 '&' 时,我将它从在前台而不是后台运行更改为

它开始工作了。我可以看到 java 进程已启动。

如果我在 linux 控制台上运行,原始命令工作正常。

我需要以后台进程的原始形式从 jenkins 运行它。所以它独立于 Jenkins 。

任何线索为什么会发生这种情况?

最佳答案

在你的 jenkins shell 脚本中尝试:

  export BUILD_ID=dontKillMe
  nohup java -jar your_java_app.jar &

它对我有用!

关于java - 无法从 jenkins 作为后台进程运行 nohup 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37341545/

相关文章:

java - 将 Quartz 作业与预先创建的对象一起使用

java - 如何使用 Spring(和 Quartz)动态启动预定作业?

c++ - 如何编写可以在 Linux 和 Windows 中轻松编译的 C++ 程序?

linux - 在shell中,如果文件大于100MB,如何删除文件,否则移动

shell - 在unix shell脚本中从字符串变量执行命令

java - Android 中的布局膨胀极其缓慢

java - HashMap 不根据键返回值

linux - 如何替换两个模式之间的空字符串

c++ - 由于 Qt3D 说支持 Linux,我应该如何处理 Linux 上缺少 window.h 的情况?

linux - 将文件中的行变成行