我已经用Python3编写了一款股票交易机器人。我将其托管在一个服务器上(Ubuntu 18.10),并使用iTerm进行SSH连接。想知道如何让脚本继续运行,以便在退出会话时不会杀死活动进程。
基本上,我想通过SSH连接到我的服务器,启动脚本,然后关闭并在一天结束时重新进入以停止进程。
基本上,我想通过SSH连接到我的服务器,启动脚本,然后关闭并在一天结束时重新进入以停止进程。
&
来安全地退出会话,而不会终止原始进程。例如,如果您的脚本名为script.py
:
nohup python3 script.py &
通常情况下,使用&
运行命令并在之后退出shell时,shell将使用挂断信号(kill -SIGHUP <pid>
)终止子命令。这可以通过使用nohup
来防止,因为它捕获该信号并忽略它,以便它永远不会传达到实际应用程序。您可以使用屏幕
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
我来这里是为了找到 nohup python3 script.py &
这个线程的正确解决方案是 screen
或者 tmux
。 :)
tmux
,但你也可以考虑将你的脚本作为守护进程运行。 - wpercy