[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:15926] Re: missing lpd ?
大仁田です。
On Wed, 9 Jun 1999 09:58:15 +0900
Kenshi Muto -san <kmuto@xxxxxxxxxxxxxxx> wrote:
> どっちかというとcronを直すよりも、/etc/init.d/lpd を直すほうがよさそう。
>
> restart|force-reload)
> echo -n "Restarting printer spooler: lpd"
> start-stop-daemon --stop --quiet --oknodo --name lpd --exec $DAEMON
>
> となっているのを、
この部分だけだと、止めてるだけですよね。この書き方だとちょっと紛らわしい
かも。元の potatoの環境の方のメールから引用しますが、
> restart|force-reload)
> echo -n "Restarting printer spooler: lpd"
> start-stop-daemon --stop --quiet --oknodo --name lpd --exec $DAEMON
> PID=$(pidof lpd)
> test -n "$PID" && kill $PID >/dev/null 2>&1
> start-stop-daemon --start --quiet --name lpd --exec $DAEMON
> echo "."
このようにちゃんと --stop した後 --start しているので、--startの直前に
sleepを入れるだけでいいんじゃないでしょうか。
私のところの hamm+slinkでは上記の test -n ... と次の start-stop-daemonの
間に sleep 2 が入っています。これがpotatoではなくなっているんでしょうか。
これを追加するだけでもけっこう違うように思います。
あと、このロジック、一応start-stop-daemon --stop した上ですぐにプロセスチェッ
クしてそれをまたkillするって、ちょっとせっかちすぎるような気がします。
pidof した時はプロセスがいて、次のtestの時に消えてたらどうなるかというと、
いないPIDに killを実行してしまい、もしかしてそこでエラーになって次の
--startをやってないなんてことは、普通はないでしょうけど、考えられないんで
しょうか?
多分、プロセスが消える前に --startしてるってのが正解だとは思いますけど。
---
大仁田弘喜 (株)マルゴシステム
nita@xxxxxxxxxx