$ 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?
您在svnserve中使用了-d标志,这意味着svnserve分支和subprocess将具有不同的pid,而不是父svnserve进程。
start-stop-daemon不知道subprocess的pid。
build议:
pid-file来确定pid号(并删除make-pidfile参数。) start-stop-daemon来做到这一点(在手册manpage的底部有一个例子) 可能是因为svnserve使它自己的pidfile。