首页 > 解决方案 > 如何使我在服务器上运行的 Python 脚本在连接断开后自动重新启动?

问题描述

我在服务器上运行我的 Python 脚本。它连接到数据库并将结果附加到文件中。这样带有结果的新行总是写在文件的末尾。但是,如果与服务器的连接断开,我将不得不从上次完成的位置再次运行它。是否可以让 Python 脚本自动 ssh 到服务器并再次运行 Python 脚本而无需人工交互?

标签: serverrestart

解决方案


像这样运行脚本

ssh user@host "nohup python -u" - < script.py &

如果连接丢失,nohup 会停止在服务器上终止的程序

& 最后意味着在后台运行此命令,因此您的本地终端可以执行其他操作而无需等待 ssh 完成。

测试它

  • 运行该命令
  • 将您的机器置于飞行模式(以某种方式强制断开连接)
  • 退出飞行模式并再次 ssh 进入远程服务器
  • 使用像 htop 这样的工具并寻找应该(希望)仍在运行的 python 脚本!

推荐阅读