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

问题描述 投票:2回答:4

我在Python3中编写了一个股票交易机器人。我把它托管在服务器(Ubuntu 18.10)上,我用iTerm来SSH。想知道如何保持脚本主动运行,这样当我退出会话时,它不会杀死活动进程。

基本上,我想要SSH到我的服务器,启动脚本然后关闭,并在停止过程的日子回来。

python ssh console
4个回答
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
投票

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

nohup python3 script.py &

通常,当使用&运行命令并在之后退出shell时,shell将使用挂断信号(kill -SIGHUP <pid>)终止子命令。这可以使用nohup来防止,因为它捕获信号并忽略它,以便它永远不会到达实际的应用程序。


0
投票

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

https://tmuxcheatsheet.com/


0
投票

TMUX非常适用于此。感谢大家!

© www.soinside.com 2019 - 2024. All rights reserved.