首页 > 解决方案 > 如何从应用程序本身重新启动 python 应用程序

问题描述

有一个 Django 应用程序让用户通过设置向导。在向导之后,应用程序需要重新启动才能选择必要的设置。

该应用程序在 Ubuntu 18.04 上运行并使用supervisord进行监控。

理想情况下,我希望从 Django 应用程序本身调用systemctl restart supervisord.service 。

所以我试过了

import subprocess
subprocess.run("systemctl restart supervisord.service")

但是,这失败并出现错误:

FileNotFoundError [Errno 2] 没有这样的文件或目录:'systemctl restart supervisord.service':'systemctl restart supervisord.service'

这里有一个关于 SO 的问题,但这是一个较旧的问题,并且那里的答案依赖于os.*而截至此发布子流程似乎是首选方式或访问 OS 功能

标签: pythondjangosubprocesssupervisord

解决方案


看到我的错误。该命令应按以下方式运行:

subprocess.run(["systemctl", "restart", "supervisor.service"])

来源:http: //queirozf.com/entries/python-3-subprocess-examples


推荐阅读