Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Jenkins上的脚本在节点上永久运行后台进程,并让Jenkins成功构建_Jenkins - Fatal编程技术网

通过Jenkins上的脚本在节点上永久运行后台进程,并让Jenkins成功构建

通过Jenkins上的脚本在节点上永久运行后台进程,并让Jenkins成功构建,jenkins,Jenkins,我通过一个脚本运行一个后台进程,这个脚本在Jenkin开始构建时被调用。然而,jenkins构建被卡住了,在控制台上,它似乎正在运行进程并等待它完成 这个过程永远不会完成,把它看作是一个监听它的客户端的服务器。我的每一个构建都会杀死服务器进程并重新启动进程,所以我很好地处理了这个场景。 有没有办法,我可以成功地构建jenkins?确切的细节取决于您的操作系统(您没有告诉),但是jenkins wiki有一个关于此的页面:为了释放jenkins线程,您可以做一个技巧 您可以做的是通过ssh连接执行

我通过一个脚本运行一个后台进程,这个脚本在Jenkin开始构建时被调用。然而,jenkins构建被卡住了,在控制台上,它似乎正在运行进程并等待它完成

这个过程永远不会完成,把它看作是一个监听它的客户端的服务器。我的每一个构建都会杀死服务器进程并重新启动进程,所以我很好地处理了这个场景。


有没有办法,我可以成功地构建jenkins?

确切的细节取决于您的操作系统(您没有告诉),但是jenkins wiki有一个关于此的页面:

为了释放jenkins线程,您可以做一个技巧

您可以做的是通过ssh连接执行bash脚本并将其发送到后台,同时将进程的pid保存在某个位置,以便进行进一步的检查

命令的格式为:

ssh -n _hostname_ "_commands_ & echo \$! > \"_path_to_pid_file_\"" &
永无止境的程序示例:

ssh -n myhost.domain.com "tail -f /var/log/my.log & echo \$! > \"$WORKSPACE/pid\"" &
此示例将生成尾进程,它将永远侦听/var/log/my.log文件中的新更改,并将其pid存储在$WORKSPACE/pid文件中

从Jenkins作业执行时,ssh进程将立即退出,而发送到后台的命令将保持在指定主机中执行

我这样做是为了始终保持我在构建场中运行的服务之一与存储库中的最新代码修改保持同步。 只需将一个作业“ssh”到目标机器中,然后终止进程,更新服务并重新启动它


这可能有点麻烦,但效果很好

Jenkins在windows上运行时,这几乎是不可能的。有人有解决方案吗?我现在花了一整天的时间在这上面,它只是表明windows作为一个真正的应用程序是多么的无能为力server@wired00也许有点晚了,但请检查一下。非常适合在windows中创建、启动和停止服务