web-dev-qa-db-ja.com

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を保存するのはなぜですか?

1
ManuelSchneid3r

Svnserveで-dフラグを使用しました。これは、svnserveフォーク、および子プロセスが親svnserveプロセスとは異なるpidを持つことを意味します。

start-stop-daemonは子プロセスpidについて知りません。

提案:

  • Svnserveからpid-fileを使用して、pid番号を決定します(そして、make-pidfile引数を削除します)。
  • Svnserveでフォークを無効にし、これも行うようにstart-stop-daemonを構成します(manpageの下部に例があります)
3

おそらく、svnserveが独自のpidfileを作成するためです。

0
Jeroen