【发布时间】:2019-12-12 07:51:06
【问题描述】:
有一个 Django 应用程序让用户通过设置向导。完成向导后,应用需要重新启动才能选择必要的设置。
该应用在 Ubuntu 18.04 上运行并使用 supervisord 进行监控。
理想情况下,我希望从 Django 应用程序本身调用 systemctl restart supervisord.service。
所以我试过了
import subprocess
subprocess.run("systemctl restart supervisord.service")
但是,这会失败并出现错误:
FileNotFoundError [Errno 2] 没有这样的文件或目录:'systemctl 重启 supervisord.service': 'systemctl restart supervisord.service'
这里有this question SO,但这是一个较老的问题,并且那里的答案依赖于 os.* 而在此发布时 subprocess 似乎是首选方式或访问操作系统功能
【问题讨论】:
-
其相关但最近的文本似乎表明 subprocess.run 是 new 首选方式?..
标签: python django subprocess supervisord