Назад | Перейти на главную страницу

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 сохраняет неправильные идентификаторы?

Вы использовали -d flag в svnserve, что означает, что svnserve разветвляется, и дочерние процессы будут иметь разные идентификаторы pid, чем родительский процесс svnserve.

start-stop-daemon не знает о pid дочерних процессов.

Предложение:

  • Использовать pid-file из svnserve, чтобы определить номер pid (и удалите make-pidfile аргумент.)
  • Отключите разветвление в svnserve и настройте start-stop-daemon для этого также (есть пример внизу manpage)

Вероятно потому, что svnserve создает собственный pid-файл.