gpt4 book ai didi

python - 从 Python 启动 Linux 守护进程

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:10:59 24 4
gpt4 key购买 nike

快速提问,

我正在使用 Django 中的 python 脚本从网页启动 linux 守护程序(运动)。当我使用以下内容时:

def restartRecord():
#restart the service
config_file = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'recorder/config/motion.conf')
p = subprocess.call(['motion', '-c', config_file])
return True

它启动守护进程没问题,但如果我使用从 Django 开发服务器(端口 8000)运行它,它也会占用端口。这是正常行为吗? - 为什么启动守护进程会占用那个端口?我可以通过停止开发服务器并尝试重新启动它来对此进行测试。

有没有更好的方法来启动这个服务?

干杯,本

最佳答案

p = subprocess.call(['motion', '-c', config_file]) 是同步调用,意味着页面加载将被阻塞直到“motion”退出(或 fork-守护进程本身。)

Django 开发服务器是单线程的,因此在等待此请求成功时不会处理任何其他请求。

您可能需要考虑使用 unix start-stop-daemon 实用程序来包装对 Action 的调用。

关于python - 从 Python 启动 Linux 守护进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14188721/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com