Como se adequar ao update-rc.d com o padrão LSB?

4

Esta é uma questão migrada do stackoverflow, como me foi dito, este é o lugar para isso. link

Eu configurei um script simples para fazer o backup de alguns diretórios. Embora eu não tenha tido problemas para configurar a funcionalidade, estou com a adição do script ao diretório rcX.d usando update-rc.d .

Meu script:

#! /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

:

Usando update-rc.d backup start 10 0 6 . , recebo os seguintes avisos e erros:

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 "."

A sintaxe que tento usar é a seguinte:

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

O Google não ajudou muito a encontrar uma solução. Como posso configurar corretamente um script e adicioná-lo via update-rc.d?

Estou usando o Ubuntu 9.10.

UPDATE

Usando update-rc.d backup start 10 0 6 . stop 10 0 . , o erro desaparece. Os avisos sobre valores padrão persistem:

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)

Ele ainda é adicionado ao rcX-dirs apropriado, mas ainda não é executado ...

    
por Community 15.02.2010 / 17:10

1 resposta

2

Não faz sentido iniciar um serviço no nível de execução 0 ou 6, que são os níveis de desligamento e reinicialização, respectivamente. Há, aparentemente, alguma mágica em update-rc.d que tenta evitar esse caso e interpreta os argumentos nesse caso. Se você usar níveis de execução mais sensatos para o início (provavelmente 2 3 4 5), funcionará melhor.

    
por 17.02.2010 / 00:34