【发布时间】:2013-11-29 10:42:42
【问题描述】:
我对金字塔和 pserve 还很陌生,但我遇到了一堵砖墙,试图阻止 pserve 而不只是杀死进程。
我可以按如下方式在生产模式下启动 pserve:
/usr/bin/python /usr/local/bin/pserve /var/mypath/production.ini start --daemon --pid-file=/var/lock/watermark.pid --log-file=/var/www/5000.log --monitor-restart http_port=8080
但是当我尝试按如下方式停止它时:
/usr/bin/python /usr/local/bin/pserve /var/mypath/production.ini stop --daemon --pid-file=/var/lock/watermark.pid --log-file=/var/www/5000.log --monitor-restart http_port=8080
我收到一个错误:
Traceback (most recent call last):
File "/usr/local/bin/pserve", line 8, in <module>
load_entry_point('pyramid==1.5a2', 'console_scripts', 'pserve')()
File "/usr/local/lib/python2.7/dist-packages/pyramid-1.5a2-py2.7.egg/pyramid/scripts/pserve.py", line 51, in main
return command.run()
File "/usr/local/lib/python2.7/dist-packages/pyramid-1.5a2-py2.7.egg/pyramid/scripts/pserve.py", line 229, in run
result = self.stop_daemon()
File "/usr/local/lib/python2.7/dist-packages/pyramid-1.5a2-py2.7.egg/pyramid/scripts/pserve.py", line 476, in stop_daemon
kill(pid, signal.SIGTERM)
OSError: [Errno 3] No such process
任何想法为什么停止命令不起作用?如果有区别的话,它就在 linux ubuntu 机器上。
【问题讨论】:
-
你确定你的pid文件真的存在吗?你确定它里面的进程id是指你的金字塔应用的进程id吗?
-
.pid 文件是在启动时写入的。我已经根据正在运行的进程和三个 pserve pid 检查了 pid 文件,它是 2 个父进程之一。