关闭SSH后如何在远程服务器上保持python脚本运行?

时间:2019-04-01 19:27:48

标签: python ssh console

我已经用Python3编写了一个股票交易机器人。我将其托管在使用iTerm SSH进入的服务器(Ubuntu 18.10)上。想知道如何保持脚本主动运行,以便退出会话时不会杀死活动进程。

基本上,我想通过SSH进入我的服务器,启动脚本,然后关闭该脚本,并在几天后停止使用该脚本。

4 个答案:

答案 0 :(得分:1)

您可以使用屏幕

sudo apt-get install screen

screen 

./run-my-script

Ctrl-A then D to get out of your screen

从那里您将可以关闭ssh终端。稍后返回并运行

screen -ls

screen -r $screen_running

运行屏幕通常是列出所有屏幕后看到的前5位数字。您可以查看您的脚本是否仍在运行,或者是否已添加日志记录,可以查看您在该过程中的位置。

答案 1 :(得分:1)

您可以使用nohup并在命令末尾添加&,以安全地退出会话而不会终止原始进程。例如,如果您的脚本名称为script.py

nohup python3 script.py &

通常,当使用&运行命令并随后退出外壳程序时,外壳程序会以挂断信号(kill -SIGHUP <pid>)终止子命令。可以使用nohup来防止这种情况,因为它会捕获信号并忽略它,从而使其永远无法到达实际的应用程序。

答案 2 :(得分:0)

使用tmux是一个不错的选择。或者,您可以在命令末尾加上&运行该命令,以使其在后台运行。

https://tmuxcheatsheet.com/

答案 3 :(得分:0)

TMUX为此完美地工作。谢谢大家!