Ubuntu

如何使 update-rc.d 符合 LSB 標準?

  • December 19, 2012

這是從 stackoverflow 遷移的問題,正如我被告知的那樣,這就是它的所在。 https://stackoverflow.com/questions/2263567/how-to-conform-to-update-rc-d-with-lsb-standard

我已經設置了一個簡單的腳本來備份一些目錄。雖然我在設置功能時沒有遇到任何問題,但我仍然堅持將腳本添加到 rcX.d 目錄的 using update-rc.d.

我的腳本:

#! /bin/sh
### BEGIN INIT INFO
# Provides:          backup
# Required-Start:    backup
# Required-Stop:     
# Should-Stop:       
# Default-Start:     0 6
# Default-Stop:      
# Description:       Backs up some dirs
### END INIT INFO

check_mounted() {
   # Check if HD is mounted
}

do_backup() {
if check_mounted; then
 # Some rsync statements.
fi
}

case "$1" in
 start)
do_backup
;;
 restart|reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
 stop|"")
# No-op
;;
 *)
echo "Usage: backup [start]" >&2
exit 3
;;
esac

:

使用update-rc.d backup start 10 0 6 .我得到以下警告和錯誤:

update-rc.d: warning: backup start runlevel arguments (none) do not match LSB Default-Start values (0 6)
update-rc.d: warning: backup stop runlevel arguments (0 6.) do not match LSB Default-Stop values (none)
update-rc.d: error: start|stop arguments not terminated by "."

我嘗試使用的語法如下:

update-rc.d [-n] <basename> start|stop NN runlvl [runlvl] [...] .

Google在尋找解決方案方面並沒有那麼大的幫助。如何正確設置腳本並通過 update-rc.d 添加它?

我正在使用 Ubuntu 9.10。

更新

使用update-rc.d backup start 10 0 6 . stop 10 0 .錯誤消失。關於預設值的警告仍然存在:

update-rc.d: warning: backup start runlevel arguments (none) do not match LSB Default-Start values (0 6)
update-rc.d: warning: backup stop runlevel arguments (0 6 0 6) do not match LSB Default-Stop values (none)

它甚至被添加到適當的 rcX-dirs 但它仍然沒有被執行……

在執行級別 0 或 6 中啟動服務是沒有意義的,它們分別是關閉和重新啟動的級別。update-rc.d 中顯然有一些魔法試圖阻止這種情況並在這種情況下錯誤解析參數。如果您在開始時使用更合理的執行級別(可能是 2 3 4 5),它會更好地工作。

引用自:https://serverfault.com/questions/113032