Linux
start-stop-daemon 保存錯誤的 PID
$ ps aux | grep svn root **4458** ... /usr/bin/svnserve -d -r /var/svn manuel 4466 ... grep --color=auto svn $ sudo kill **4458** $ sudo rm /var/run/svnserve.pid $ sudo start-stop-daemon --start --make-pidfile --pidfile /var/run/svnserve.pid --exec /usr/bin/svnserve -- -d -r /var/svn $ cat /var/run/svnserve.pid **4474** $ ps aux | grep svn root **4477** ... /usr/bin/svnserve -d -r /var/svn manuel 4480 ... grep --color=auto svn
為什麼 start-stop-daemon 保存錯誤的 pid?
您
-d
在 svnserve 中使用了該標誌,這意味著 svnserve 分叉,並且子程序將具有與父 svnserve 程序不同的 pid。
start-stop-daemon
不知道子程序 pid。建議:
- 使用
pid-file
from svnserve 來確定 pid 號(並刪除make-pidfile
參數。)- 在 svnserve 中禁用分叉,並配置
start-stop-daemon
為執行此操作(底部有一個範例manpage
)
可能是因為 svnserve 使其成為自己的 pidfile。