
第一次接触 Jenkins,有多台 windows 服务器部署同一个 jar,想用一个 job 执行部署。通过 java-jar 的方式启动后控制台会一直输出内容,导致无法部署到下一台服务器。看网上的是都是 start javaw -jar 执行的,但是我用了 start 执行后服务器上没反应,jar 包没有启动。
1 fonlan 2019 年 11 月 21 日 via Android windows 的话为啥不直接部署成服务模式? |
3 xwbz2018 2019 年 11 月 22 日 via Android nohup 了解一下 |
6 CodeXx OP 啊啊啊,没人用 Jenkins 整 Windows 服务器的吗?? |
7 xwbz2018 2019 年 11 月 22 日 via Android |
9 CodeXx OP 发现一个骚操作,把超时时间设为 20s,超时关闭连接的时候不会把启动的 Java 进程关掉 |
12 CodeXx OP 我就很纳闷了,网上都是直接 start 启动的,他们不会出现杀进程的情况吗 |
15 Elfred2096 2019 年 11 月 22 日 |
16 tomczhen 2019 年 11 月 22 日 via Android 文档上不是有 install Jenkins as Windows service 这段吗? |
18 CodeXx OP @Elfred2096 试过了 |
19 Firxiao 2019 年 11 月 22 日 你的问题应该是 Windows 如何在 cmd 下跑后台进程吧? 帮你搜了下. https://superuser.com/questions/198525/how-can-i-execute-a-windows-command-line-in-background ``` START /B program ``` |
20 fonlan 2019 年 11 月 22 日 via Android @CodeXx 麻烦????启动 agent 的 jar 包后不是有个界面的么,界面左上角有个菜单,点下就安装成 windows 服务了啊,没有更简单的了吧 |
22 CodeXx OP @fonlan 我以为是说把要部署的 jar 包搞成 Windows 服务来启动。Jenkins 作为 Windows 服务后可以解决这个问题吗?我去试下 |
23 qweznmadmin 2019 年 11 月 23 日 @CodeXx 你这个问题是 jenkins 默认会在构建完成后杀死构建过程中由 jenkins 中的 shell 命令触发的衍生进程 可以考虑关闭这个功能。 话说你怎么解决下次部署的时候自动关闭程序。我是直接用 c#嵌套解决 |
24 mmdsun 2019 年 11 月 23 日 via Android 启动外部.bat 即可。Jenkins 有个配置可以不杀死启动进程 |
25 mmdsun 2019 年 11 月 23 日 via Android BUILD_ID=dontKillMe /linedata/home/jenkins/auto_build.bat |
27 CodeXx OP @qweznmadmin 用的是 batch 脚本,启动 Jenkins 的时候加了这个参数 java -Dhudson.util.ProcessTree.disable=true -jar D:\Jenkins\jenkins.war 但是没用。 我现在的解决方案是把构建的超时时间设为 20s,超时后会断开 ssh,这样断开就不会杀死进程。然后又执行下一个服务器的操作,也算是实现了部署多台服务器了 |
29 mmdsun 2019 年 11 月 25 日 via Android @CodeXx 什么版本的? 去 Windows batch command 点击输入框下方的“可用环境变量”。 jenkins 默认会在构建完成后杀掉构建过程中又 jenkins 中 shell 命令触发的衍生进程。jenkins 根据 BUILD_ID 识别某个进程是否为构建过程的衍生进程,故修改 BUILD_ID 后,jenkins 就无法识别是否为衍生进程,则此进程能在后台保留运行。 |
31 CodeXx OP @mmdsun 我的构建不是用的 Execute Windows batch command,我用的 Send File or excute commands over SSH |
32 lngg057 2021 年 1 月 26 日 看官方文档,有描述。 启动 war 包的时候,采用这种方式:java -Dhudson.util.ProcessTree.disable=true -jar jenkins.war 禁用 ProcessTree 即可避免自动杀进程 |