python - 如何从应用程序本身重新启动 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 功能
解决方案
看到我的错误。该命令应按以下方式运行:
subprocess.run(["systemctl", "restart", "supervisor.service"])
来源:http: //queirozf.com/entries/python-3-subprocess-examples
推荐阅读
- node.js - 如何捕获输入的元素。云函数。火力基地
- python - Pandas 通过迭代根据列表项的其他列值设置列值
- javascript - jQuery:只触发一次回调
- apache-kafka - 向主题发送消息时出现 Kafka 错误
- microsoft-graph-api - 为什么我的 saveAsync 方法总是返回相同的结果?(Office.js - Outlook 插件)
- css - 是否存在用于在元素中放置内容并定位它们的 CSS 规则?
- android - Room 数据库中的关系
- imagemagick - 可以在 imagemagick 中多次使用 miff 管道吗?
- angular - 删除 Angular 2 中的事件监听器
- vb.net - 使用提交的数据在当前 Web 浏览器控件中打开新窗口