$ 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 сохраняет неправильные идентификаторы?
Вы использовали -d
flag в svnserve, что означает, что svnserve разветвляется, и дочерние процессы будут иметь разные идентификаторы pid, чем родительский процесс svnserve.
start-stop-daemon
не знает о pid дочерних процессов.
Предложение:
pid-file
из svnserve, чтобы определить номер pid (и удалите make-pidfile
аргумент.)start-stop-daemon
для этого также (есть пример внизу manpage
)Вероятно потому, что svnserve создает собственный pid-файл.