如何使服务器上 运行 的 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 的脚本!
我正在 运行在服务器上安装我的 Python 脚本。它连接到数据库并将结果附加到文件中。这样带有结果的新行总是写在文件的末尾。但是,如果与服务器的连接断开,我将不得不从上次完成的地方再次 运行 它。是否可以使 Python 脚本自动通过 ssh 连接到服务器并 运行 再次 Python 脚本而无需人工交互?
On linux: 在systemd
中配置运行这样的脚本
ssh user@host "nohup python -u" - < script.py &
如果连接丢失,nohup 会阻止程序在服务器上终止
& 最后的意思是 运行 在后台执行此命令,因此您的本地终端可以在不等待 ssh 完成的情况下执行其他操作。
通过
测试- 运行执行该命令
- 将您的机器置于飞行模式(以某种方式强制断开连接)
- 退出飞行模式并再次通过 ssh 连接到远程服务器
- 使用像 htop 这样的工具并寻找您 python 应该(希望)仍然 运行ning 的脚本!