通过 SSH 启动后台命令

通过 SSH 启动后台命令

问题:

我想将(针对所有容器)的输出导入docker logs -f另一个命令并使其在远程服务器上保持运行。我已经发现通过 SSH 运行 nohup 命令,然后断开连接但我没有成功采用该用例的解决方案。

到目前为止我已经尝试过什么:

ssh server << EOF
for cont in `docker ps -q`; do
        docker logs -f $cont 2>&1 | bunyan | /var/opt/go-logsink/go-logsink connect 2>&1 &
done
EOF

nohup 版本:nohup "docker logs -f $cont 2>&1 | bunyan | /var/opt/go-logsink/go-logsink connect"

在屏幕会话中运行该循环是可行的,但我想在部署后自动调用,但这样做不行。我还尝试nohup "<command>"在循环内调用,发现它创建了进程,断开 ssh 连接后进程被终止。

问题:

如何运行该循环以便它创建在 ssh 会话关闭后仍保持活动的进程。

答案1

Screen 或 tmux 可能是您正在寻找的,可以独立于 SSH 保持会话活动。

相关内容