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

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

这是一个从 stackoverflow 迁移过来的问题,正如我所说的,它应该在这里。 https://stackoverflow.com/questions/2263567/how-to-conform-to-update-rc-d-with-lsb-standard

我已经设置了一个简单的脚本来备份一些目录。虽然设置该功能时我没有遇到任何问题,但我还是坚持使用 将脚本添加到 rcX.d 目录中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 但仍然没有执行......

答案1

在运行级别 0 或 6 下启动服务是没有意义的,这两个级别分别是关机和重启的级别。update-rc.d 中似乎有一些魔法试图阻止这种情况,并在这种情况下错误解析参数。如果您使用更合理的运行级别来启动(可能是 2 3 4 5),它会更好地工作。

相关内容