server - 如何使我在服务器上运行的 Python 脚本在连接断开后自动重新启动?
问题描述
我在服务器上运行我的 Python 脚本。它连接到数据库并将结果附加到文件中。这样带有结果的新行总是写在文件的末尾。但是,如果与服务器的连接断开,我将不得不从上次完成的位置再次运行它。是否可以让 Python 脚本自动 ssh 到服务器并再次运行 Python 脚本而无需人工交互?
解决方案
像这样运行脚本
ssh user@host "nohup python -u" - < script.py &
如果连接丢失,nohup 会停止在服务器上终止的程序
& 最后意味着在后台运行此命令,因此您的本地终端可以执行其他操作而无需等待 ssh 完成。
测试它
- 运行该命令
- 将您的机器置于飞行模式(以某种方式强制断开连接)
- 退出飞行模式并再次 ssh 进入远程服务器
- 使用像 htop 这样的工具并寻找应该(希望)仍在运行的 python 脚本!
推荐阅读
- r - 如何使用 ggplot2 中的 position_fill 将文本与条形图对齐?
- c - 打开mp减少令人困惑
- sql - SQL 触发器更改仅在数据库中进行更改
- r - 如何使用基于其他两个变量的该列的平均值填充原始数据帧子集的给定列中的 NA
- mongodb - MongoDB Schema 验证失败
- python - 在装饰器中通过别名调用函数
- jquery - 通过jquery克隆表并将其数据插入数据库
- c++ - 在 C++11 Lambda 中绑定 RValue 引用
- ssh - Ansible 如何在 ansible 2.7.x 之前忽略无法访问的主机
- apache-spark - 当我们尝试在 sbt 文件中使用 cloudera 上游版本时,sbt 程序集构建失败