守护程序 PID 锁定错误
Daemon PID lock error
系统启动后,我的脚本从 crontab 作为守护进程启动。它工作了一段时间 suspends/hangs 没有反应。在那之后我不能 运行 它像 sudo python script.py restart
,因为它说:
File "/usr/lib/pymodules/python2.7/daemon/runner.py", line 149, in _stop
"PID file %(pidfile_path)r not locked" % vars())
daemon.runner.DaemonRunnerStopFailureError: PID file '/home/pi/testdaemon.pid' not locked
在脚本的 init 中有:
def __init__(self):
self.stdin_path = '/dev/null'
self.stdout_path = '/dev/null'
self.stderr_path = '/dev/null'
self.pidfile_path = '/home/pi/testdaemon.pid'
self.pidfile_timeout = 5
任何解决这个问题的想法都会很棒!
编辑:
看来我找到问题了。当它停止时我无法重新启动守护程序,因为整个机制首先想要停止我的守护程序,但它不能,因为它已经停止了。然后我发现我的脚本中有一个问题,导致整个 运行 只持续了几秒钟就崩溃了。无论如何,谢谢你的每一个答案!
我不知道为什么 您的脚本挂起 -- 但显然它的进程仍然存在,所以清理永远不会发生。您可以通过检查 /home/pi/testdaemon.pid
来强制清理,验证它包含的进程 ID 确实仍然是 运行ning,终止该进程(如果需要,使用 -9),并且只是为了完整性, 删除 /home/pi/testdaemon.pid
.
之后,您应该可以重新运行您的脚本。然而,核心问题是,为什么 执行你的脚本 "hang without response" —— 而你只是没有给我们任何信息来帮助你调试 that 问题(也许一个单独的问题更合适)...这些只是 "emergency steps" 你可以让你再次 运行 你的脚本,但当然他们没有做任何评估或解决问题的根本原因!
系统启动后,我的脚本从 crontab 作为守护进程启动。它工作了一段时间 suspends/hangs 没有反应。在那之后我不能 运行 它像 sudo python script.py restart
,因为它说:
File "/usr/lib/pymodules/python2.7/daemon/runner.py", line 149, in _stop
"PID file %(pidfile_path)r not locked" % vars())
daemon.runner.DaemonRunnerStopFailureError: PID file '/home/pi/testdaemon.pid' not locked
在脚本的 init 中有:
def __init__(self):
self.stdin_path = '/dev/null'
self.stdout_path = '/dev/null'
self.stderr_path = '/dev/null'
self.pidfile_path = '/home/pi/testdaemon.pid'
self.pidfile_timeout = 5
任何解决这个问题的想法都会很棒!
编辑:
看来我找到问题了。当它停止时我无法重新启动守护程序,因为整个机制首先想要停止我的守护程序,但它不能,因为它已经停止了。然后我发现我的脚本中有一个问题,导致整个 运行 只持续了几秒钟就崩溃了。无论如何,谢谢你的每一个答案!
我不知道为什么 您的脚本挂起 -- 但显然它的进程仍然存在,所以清理永远不会发生。您可以通过检查 /home/pi/testdaemon.pid
来强制清理,验证它包含的进程 ID 确实仍然是 运行ning,终止该进程(如果需要,使用 -9),并且只是为了完整性, 删除 /home/pi/testdaemon.pid
.
之后,您应该可以重新运行您的脚本。然而,核心问题是,为什么 执行你的脚本 "hang without response" —— 而你只是没有给我们任何信息来帮助你调试 that 问题(也许一个单独的问题更合适)...这些只是 "emergency steps" 你可以让你再次 运行 你的脚本,但当然他们没有做任何评估或解决问题的根本原因!