【发布时间】:2021-07-27 05:01:55
【问题描述】:
我有一个作为服务运行的 python 应用程序(它是一个龙卷风网络服务器)。我希望应用程序能够自我更新如下。
- 用户上传包含新版本应用程序文件的包文件
- Web 应用程序启动一个单独的 python(或脚本)应用程序,它执行以下操作:
- 关闭主应用程序(systemctl stop myapplication)
- 更新上传包中的文件。
- 重新启动安装了更新的应用程序(新版本)
我已经尝试过使用 nohup 和双叉方法来启动“更新程序”程序,但是一旦我从生成的子程序中关闭应用程序,它就会出现,更新程序会终止并且进程会失败。我不确定这是否是因为我没有正确分离更新过程(我想我是这样),或者监控服务的 systemd 进程是否会导致这种方法出现问题。
有什么建议吗?我正在考虑使用一个单独的应用程序(龙卷风)并行运行,我发送一个 HTTP 请求来触发它来控制父应用程序并进行安装。
想法?
-杰夫
有什么建议吗?
【问题讨论】:
标签: python service tornado systemd