啟動腳本有問題

啟動腳本有問題

我試圖讓 Chandler 在用戶“chandler”下啟動時在 debian 機器上運行,並嘗試了以下腳本,將其定位在 init.d 中:

#! /bin/sh
#
# /etc/init.d/chandler
#

RETVAL=$?
CHANDLER_HOME="/chandler"

# check input
case "$1" in
  start)
    if [ -f $CHANDLER_HOME/bin/osafsrvctl ];
      then
        /bin/su chandler $CHANDLER_HOME/bin/osafsrvctl start
    fi
    ;;
  stop)
    if [ -f $CHANDLER_HOME/bin/osafsrvctl ];
      then
        /bin/su chandler $CHANDLER_HOME/bin/osafsrvctl stop
    fi
    ;;
  *)
    echo "Usage: /etc/init.d/osafsrvctl {start|stop}"
    exit 1
    ;;
esac

exit $RETVAL

然後我跑了:

update-rc.d chandler defaults

我檢查過 init.d 中的啟動腳本有 755 權限...但沒有什麼樂趣。

我在這裡遺漏了一些明顯的東西嗎?

感謝您的指點。

更新:根據下面的建議,這是我添加到腳本中的初始化標頭:

### BEGIN INIT INFO
# Provides:          chandler
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start/stop chandler server
### END INIT INFO

答案1

查看其他腳本,/etc/init.d您應該會看到一個 LSB 標頭註解區塊,與以下範例類似fetchmail

### BEGIN INIT INFO
# Provides:          fetchmail
# Required-Start:    $network $local_fs $remote_fs
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      1
# Short-Description: init-Script for system wide fetchmail daemon
### END INIT INFO

需要這種類型的區塊。

man update-rc.d

update-rc.d 有兩種將腳本安裝到引導序列的操作模式。傳統模式中使用命令列參數來決定序列和執行層級配置,而預設模式則使用 init.d 腳本 LSB 註解頭中的依賴項和執行層級資訊。此類標頭需要出現在 init.d 腳本中。有關 LSB 標頭格式的詳細信息,請參閱 insserv(8) 手冊頁。

相關內容