1999/06/24     Init scripts

補足:Wnn の起動スクリプトについて

Linux の作法では、

. /etc/rc.d/init.d/functions

で function library をソースしてこの中に定義されている起動用の daemon、終了用の killproc、あるいは特別な終了コマンドを呼ぶ場合や、準備コマンドを呼ぶ必要がある場合、action などのシェル関数を使う。

case "$1" in
  start)
        # Start daemons.
        daemon foobar
        echo
        touch /var/lock/subsys/foobar
        ;;
  stop)
        # Stop daemons.
        action "Shutting down foobar: " foobarkill
        rm -f /var/lock/subsys/foobar
        ;;

のような感じ。ちなみに、jserver の場合は、daemon jserver とやると問題がある。これは、jserver が子プロセスを fork したあとで、自分自身を kill するため、return code は SIGTERM = 15 となることによる。そこで、daemon 関数を使うと、return code が 0 でないので [  OK  ] でなく [FAILED] と表示してしまうわけである。そこで、daemon jserver のかわりに

        jserver
        [ $? = 15 ] && echo_success || echo_failure

などとしておけばよい。ちなみにシグナルの番号については

        /usr/include/bits/signum.h

を見る。
 


Back to Keisuke Fujii's MkLinux/LinuxPPC Life