Назад | Перейти на главную страницу

Как согласовать 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-каталоги, но по-прежнему не выполняется ...

Нет смысла запускать службу на уровне выполнения 0 или 6, которые являются уровнями завершения работы и перезагрузки соответственно. Очевидно, в update-rc.d есть какая-то магия, которая пытается предотвратить этот случай и неправильно разбирает аргументы в этом случае. Если вы используете более разумные уровни запуска для запуска (вероятно, 2 3 4 5), это будет работать лучше.