Update-rc.d no Debian 6.0? No way! init.d Debian 6 mudou!

No Debian 6.0 todos os scripts de inicialização “/etc/init.d/” foram convertidos para ordenar a sequencia de boot baseado em um padrão especificado na Base Standard de Linux (LSB). Com o aderimento a esse padrão agora existe um cabeçalho em todos os scripts de inicialização onde são indicadas as dependências que ele necessita para poder ser executa, fazendo com que o script inicie só depois de tais dependências.

Esta funcionalidade é ativada pelo insserv que ordena os scripts init.d baseando-se nas suas dependências declaradas nos cabeçalhos.

Ou seja, para adicionar/remover serviços da inicialização no Debian 6.0 não se usa mais o “update-rc.d” e sim o “insserv”!

Vamos a pratica!

Removendo o cron ta inicialização do sistema:

root@fw:~# insserv -rv cron
insserv: remove service /etc/init.d/../rc2.d/S03cron
insserv: remove service /etc/init.d/../rc3.d/S03cron
insserv: remove service /etc/init.d/../rc4.d/S03cron
insserv: remove service /etc/init.d/../rc5.d/S03cron
insserv: creating .depend.boot
insserv: creating .depend.start
insserv: creating .depend.stop

Adicionando o cron na inicialização do sistema:

root@fw:~# insserv -v cron
insserv: enable service ../init.d/cron -> /etc/init.d/../rc2.d/S03cron
insserv: enable service ../init.d/cron -> /etc/init.d/../rc3.d/S03cron
insserv: enable service ../init.d/cron -> /etc/init.d/../rc4.d/S03cron
insserv: enable service ../init.d/cron -> /etc/init.d/../rc5.d/S03cron
insserv: creating .depend.boot
insserv: creating .depend.start
insserv: creating .depend.stop

Beleza! Mas onde são definidos em quais runlevels ele será inicializado por padrão? O insserv se baseia no cabeçalho declarado dentro do /etc/ini.t/cron, veja:

root@fw:~# cat /etc/init.d/cron
#!/bin/sh
# Start/stop the cron daemon.
#
### BEGIN INIT INFO
# Provides: cron
# Required-Start: $remote_fs $syslog $time
# Required-Stop: $remote_fs $syslog $time
# Should-Start: $named slapd autofs ypbind nscd nslcd
# Should-Stop: $named slapd autofs ypbind nscd nslcd
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: Regular background program processing daemon
# Description: cron is a standard UNIX program that runs user-specified
# programs at periodic scheduled times. vixie cron adds a
# number of features to the basic UNIX cron, including better
# security and more powerful configuration options.
### END INIT INFO

No campo “Default-Start:” é passado em quais runlevels ele será iniciado por padrão.

Legal! E de onde o insserv tira a prioridade de rodar os scripts, exemplo do cron (“/etc/init.d/../rc2.d/S03cron”) iniciando com prioridade 03? Aí que está a grande novidade, você não ira mais editar essa prioridade na mão, o insserv vai calcular a prioridade de acordo com o tal cabeçalho verificando quais os scripts devem ser iniciados antes para que o script seja executado. Exemplo:

root@fw:~# cat /etc/init.d/cron
#!/bin/sh
# Start/stop the cron daemon.
#
### BEGIN INIT INFO
# Provides: cron
# Required-Start: $remote_fs $syslog $time
# Required-Stop: $remote_fs $syslog $time
# Should-Start: $named slapd autofs ypbind nscd nslcd
# Should-Stop: $named slapd autofs ypbind nscd nslcd
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: Regular background program processing daemon
# Description: cron is a standard UNIX program that runs user-specified
# programs at periodic scheduled times. vixie cron adds a
# number of features to the basic UNIX cron, including better
# security and more powerful configuration options.
### END INIT INFO

No campo “Should-Start:” são definidos os scripts que deverão ser iniciados antes do script em questão, no caso o cron. De acordo com o cabeçalho dele, ele ira rodar só depois que “$named slapd autofs ypbind nscd nslcd” rodarem. Então é por isso que o insserv deu a prioridade 03.

Essa foi uma pincelada sobre esse novo modelo de gerenciamento de scripts do init.d.

Para você entender melhor outros parâmetros, como $remote_fs $syslog $time, que são passados nesses campos, de uma conferida no wiki oficial do Debian: http://wiki.debian.org/LSBInitScripts

Para conferir oficialmente as mudanças registradas segue os links:

http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot

http://www.debian.org/releases/stable/i386/release-notes/ch-whats-new.pt.html#dependency-boot

Deixe um comentário