
我試圖讓 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) 手冊頁。