如何使服务器上 运行 的 Python 脚本在连接断开后自动重新启动?

How do I make my Python script that is running on the server, to automatically restart after the connection is broken?

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

On linux: 在systemd

中配置

运行这样的脚本

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

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

& 最后的意思是 运行 在后台执行此命令,因此您的本地终端可以在不等待 ssh 完成的情况下执行其他操作。

通过

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