【发布时间】:2018-10-10 07:32:41
【问题描述】:
我正在使用 Azure DevOps(以前称为 VSTS)在 Linux 机器(特别是 CentOS 机器)中运行脚本。
我有一个在后台运行进程的内联脚本任务,但在部署组阶段结束之后。创建的进程也被终止。
下面是我写的示例脚本
使用屏幕:
screen -dm ping localhost
结果:
- 发布成功
- 在目标服务器中找不到进程 ID
- 显示屏幕为
dead
使用 nohup + 重定向 + & 符号
nohup ping localhost 2>&1 &
结果:
- 任务未完成,卡住了。
这是 VSTS 部署代理的默认行为吗?
【问题讨论】:
-
screen和nohup都意味着在用户再次注销或失去连接后保持进程在继续运行的机器上运行。他们无法在机器关闭后幸存下来。您确定在您断开连接后机器(可能是虚拟机)真的继续运行吗? -
@Alfe,是的。我通过 PuTTY 手动运行它,关闭了终端。使用不同的用户名再次连接到 VM,我仍然可以看到 PID。
标签: azure-devops sh agent