【发布时间】:2013-01-07 01:31:37
【问题描述】:
快速提问,
我正在使用 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)运行它,它也会占用端口。这是正常的行为吗? - 为什么启动守护进程会占用那个端口?我可以通过停止开发服务器并尝试重新启动来测试它。
有没有更好的方法来启动这个服务?
干杯, 本
【问题讨论】:
-
子进程继承文件描述符,其中包括网络连接。适当的守护程序将关闭从父级继承的所有文件描述符。你的守护进程可能不会。