使用SSH(脚本,插件等)启动进程

Squ*_*uab 4 jenkins jenkins-plugins

我正在尝试通过重新启动使我的Python App工作的两个进程来完成远程部署.像这样

process-one &
process-two &
Run Code Online (Sandbox Code Playgroud)

我试过这样做"执行一个Shell脚本"

ssh -i ~/.ssh/id_... user@xxx.xxx ./startup.sh
Run Code Online (Sandbox Code Playgroud)

我尝试过使用Jekins SSH插件发布SSH插件并做同样的事情.所有前面的步骤,停止进程,重新启动其他服务,拉入新代码工作正常.但是当我到达我开始服务的那一部分时.它执行这两行,并且插件或默认脚本执行都不能脱离服务器.它们都会挂起,直到我重新启动Jekins或者在发布通过SSH插件的情况下超时.所以我的构建需要重启Jenkins,或者标记为不稳定.

有没有人做过类似的事情?我试过了

nohup process-one &
Run Code Online (Sandbox Code Playgroud)

但同样的事情发生了.并不是说服务也搞乱了,因为它们实际上是正常启动的,只是Jenkins似乎并不理解这一点.

任何帮助将不胜感激.谢谢.

cof*_*aks 5

产生的过程(即使使用&)消耗与ssh连接相同的输入和输出可能会发生什么.Jenkins正在等待这些管道在作业关闭之前被清空,因此等待进程退出.您可以通过终止进程来验证,并且您将看到jenkins作业终止.

分离输出并远程启动过程

您的问题有多种解决方案:

Python守护进程

最初的问题集中在SSH上,所以我没有完全描述如何将python进程作为守护进程运行.这主要包括在其他技术中:


归档时间:

查看次数:

4946 次

最近记录:

12 年,4 月 前