我已经用Python3编写了一个股票交易机器人。我将其托管在使用iTerm SSH进入的服务器(Ubuntu 18.10)上。想知道如何保持脚本主动运行,以便退出会话时不会杀死活动进程。
基本上,我想通过SSH进入我的服务器,启动脚本,然后关闭该脚本,并在几天后停止使用该脚本。
答案 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
是一个不错的选择。或者,您可以在命令末尾加上&
运行该命令,以使其在后台运行。
答案 3 :(得分:0)
TMUX为此完美地工作。谢谢大家!