关闭shell后保持python代码运行

时间:2019-03-31 15:53:22

标签: python ssh jupyter-notebook

我正在处理远程服务器上的问题(我使用ssh进行连接)。由于我是该域的新手,因此我正在使用jupyter-notebook,以便可以进行检查和编码。 我的代码中的某些部分需要很长时间才能运行(例如4-5个小时),而我却无法维持那么长时间的连接。 关闭外壳后如何保持代码运行?我是否应该将其复制到.py文件并使用tmux或screen之类的命令?

2 个答案:

答案 0 :(得分:2)

使用屏幕。

  

$屏幕

这将创建一个屏幕会话,完成后,您可以使用ctrl-a-d键断开连接。

要返回:

  

$屏幕-列表

这将显示分离的屏幕会话的列表。连接

  

$屏幕-r

答案 1 :(得分:0)

我也使用PM2, the Node.js process manager,它也可用于Python脚本(以及更多其他语言)。

安装,然后使用以下代码启动代码:

pm2 start your_code.py

列出您正在运行的进程:

pm2 list 

是的,您可以根据需要从一个终端启动多个脚本。

使用以下内容查看日志:

pm2 logs

PM2默认在错误或终止后重新启动脚本。为防止这种情况,并让您的代码仅运行一次,请添加--no-autorestart标志:

pm2 start your_code.py --no-autorestart

退出终端后,进程继续运行,重新登录到服务器实例后,进程才可用。您还可以设置PM2,以便在实例重新启动后重新启动脚本。