通过 SSH 命令运行进程并保持其活动

通过 SSH 命令运行进程并保持其活动

我尝试使用 nohup 在远程服务器上运行 python 程序,如下所述: 如何在结束 ssh 会话后保持进程继续运行?

当我这样做时ssh server -C "nohup prog.py &",python 程序就存在了BrokenPipeError: [Errno 32] Broken pipe

当我这样做时ssh server -C "nohup prog.py",python 程序运行顺利,但 ssh 连接显然保持活动状态。一旦我ctrl^c这样做,我再次收到Broken pipe错误。

显然我在这里遗漏了一些东西,但不知道是什么。

答案1

正如 xenoid 在评论中指出的那样,将 stdout/stderr 重定向到屏幕以外的任何地方都可以解决问题。

答案2

尝试 GNU Screen ( ssh server -t "screen python prog.py")。Screen 将保护进程免于终止。^A然后使用d分离并screen -xr重新连接。

相关内容