如何符合LSB标准的update-rc.d?

这是从stackoverflow迁移的问题,据我所知,这是它的地方。 https://stackoverflow.com/questions/2263567/how-to-conform-to-update-rc-d-with-lsb-standard

我已经build立了一个简单的脚本来备份一些目录。 虽然我没有任何设置function的问题,但我坚持使用update-rc.d将脚本添加到rcX.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] [...] . 

谷歌对find解决scheme没有帮助。 我怎样才能正确地build立一个脚本,并通过update-rc.d添加它?

我正在使用Ubuntu 9.10。

UPDATE

使用update-rc.d backup start 10 0 6 . stop 10 0 . 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启动服务是没有意义的,分别是closures和重新启动的级别。 在update-rc.d中显然存在一些魔法,它试图防止这种情况,并在这种情况下将参数误解。 如果你开始使用更合理的运行水平(可能2 3 4 5),它会更好地工作。