通过SSH在远程服务器上运行Python脚本

时间:2017-07-31 03:25:37

标签: python linux ssh

我正在尝试在数字海洋(DO)Droplet(Ubuntu 16)上运行此Python脚本: https://github.com/instabot-py/instabot.py

虽然我可以运行python3 example.py,但是如果我杀掉我曾经使用SSH进入DO Droplet的终端窗口,该过程就会停止。

有没有办法运行这个Python脚本并在仍然运行Python脚本的情况下与DO Droplet断开连接?

4 个答案:

答案 0 :(得分:3)

使用nohup在后​​台运行程序

nohup python3 example.py > /dev/null 2>&1 &

或者您可以使用screen执行此操作:

$ screen
$ python3 example.py
To detach the current session, you can press Ctrl+A and then press D.
To re-attach previous session, use command `screen -r`

screen命令比nohup更强大。

答案 1 :(得分:1)

即使断开与服务器的连接,您也可以在linux中使用screen继续在后台执行该过程。 同样可以使用tmux

this问题的答案很可能是您正在寻找的。

答案 2 :(得分:0)

你可以试试这些python库来实现这个

http://www.paramiko.org/

https://pypi.python.org/pypi/spur

或者您也可以使用tmux在远程服务器上运行命令,即使您退出shell,tmux seisson也会在后台运行。您可以在几天之后加入该tmux会话并继续执行命令

答案 3 :(得分:0)

我们使用以下格式来执行远程脚本 ssh -t -t user@host.com 'nohup /path/to/scrip.py'