问题:
我想将(针对所有容器)的输出导入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 保持会话活动。