実行されていないinit.dスクリプトをデバッグする方法

実行されていないinit.dスクリプトをデバッグする方法

Debian で起動しようとしていますgod/etc/init.d/以下のようにディレクトリにスクリプトを追加しました。

#!/usr/bin/sh
### BEGIN INIT INFO
# Provides:          god
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog 
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: start god process monitoring
# Description:       Start god process monitoring
### END INIT INFO

god_conf="absolute/path/to/god.conf"
god_pid_file="/var/run/god/god.pid" ; mkdir -p `dirname $god_pid_file`
god_log_file="/var/log/god/god.log" ; mkdir -p `dirname $god_log_file`
case "$1" in
  start)
    god -c "$god_conf" -P "$god_pid_file" -l "$god_log_file"
    RETVAL=$?
    echo "God started"
    ;;
...

必要なシンボリックリンクを生成するために、次のコマンドを実行しました。sudo update-rc.d god defaults

ところでマシンを再起動しても神が始まらないようです。私の質問は、この問題をどのようにデバッグできるかということです。

探してみましたがdmesg関連内容が一つもありませんでしたgod。私も見ましたsyslogが、何も見えませんでした。また、god.logファイルが空でgod.pidファイルはありません。

私のinitスクリプトが呼び出されていないのが問題なのか、それともgodを起動しようとしたときに失敗するのかわかりません。私は手動で実行してGodを起動しようとしましたが、sudo /etc/init.d/god start正常に動作しているようです。どんなアイデアがありますか?

ベストアンサー1

#!/usr/bin/sh

shほとんどすべてのUNIXで一般的な場所はです/bin/sh。一部のUnixバリアントはマージされて/bin動作します/usr/binが、/usr/bin/sh移植可能な方法なので、/bin/shshebangsで使用する必要があります。結論はDebianには/usr/bin/sh

おすすめ記事