[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