Inicialização de serviços no Linux – parte II

Acabei chamando esse artigo de parte II, mas na verdade queria chama-lo Inicialização de serviços no Linux – Gerenciando mais fácil. Isso porque o foco desse artigo é apresentar um programinha mão na roda chamado update-rc.d. Ele nos ajuda a criar e apagar os nossos serviços nos diferentes Runlevels do Linux (para ver a parte introdutória que explica melhor o que é Runlevel, clique aqui).

O update-rc.d vem instalados por padrão nos Linux baseados no Debian (como Ubuntu que estou usando agora). Ele permite que através de comandos simples você possa criar e remover os links simbólicos dos seus Runlevels, facilitando a inclusão e remoção de serviços.

Para acrescentar um serviço na forma padrão, fariamos:

$sudo update-rc.d -f NOME_DO_SERVICO defaults

E ele geraria para mim:

Adding system startup for /etc/init.d/NOME_DO_SERVICO ...
/etc/rc0.d/K20NOME_DO_SERVICO -> ../init.d/NOME_DO_SERVICO
/etc/rc1.d/K20NOME_DO_SERVICO -> ../init.d/NOME_DO_SERVICO
/etc/rc6.d/K20NOME_DO_SERVICO -> ../init.d/NOME_DO_SERVICO
/etc/rc2.d/S20NOME_DO_SERVICO -> ../init.d/NOME_DO_SERVICO
/etc/rc3.d/S20NOME_DO_SERVICO -> ../init.d/NOME_DO_SERVICO
/etc/rc4.d/S20NOME_DO_SERVICO -> ../init.d/NOME_DO_SERVICO
/etc/rc5.d/S20NOME_DO_SERVICO -> ../init.d/NOME_DO_SERVICO

Onde NOME_DO_SERVICO é um script de inicialização/parada do seu serviço presente na pasta /etc/init.d. Para remover esse serviço, fariamos:

$update-rc.d -f NOME_DO_SERVICO remove

E ele faria:

Removing any system startup links for /etc/init.d/NOME_DO_SERVICO ...   /etc/rc0.d/K20NOME_DO_SERVICO
/etc/rc1.d/K20NOME_DO_SERVICO
/etc/rc2.d/S20NOME_DO_SERVICO
/etc/rc3.d/S20NOME_DO_SERVICO
/etc/rc4.d/S20NOME_DO_SERVICO
/etc/rc5.d/S20NOME_DO_SERVICO
/etc/rc6.d/K20NOME_DO_SERVICO

O update-rc.d se encarrega de colocar uma ordenação (a numeração que vem logo depois do S ou do K) para nós. Mas, se quiséssemos definir um número obrigatório para esse serviço, seria simplesmente:

$sudo update-rc.d -f NOME_DO_SERVICO defaults ORDEM_DO_RUNLEVEL

Como vimos, esse pequeno script nos fornece um imenso poder para gerenciar nossos serviços. Para mais detalhes:

$man update-rc.d

5 opiniões sobre “Inicialização de serviços no Linux – parte II”

  1. Parabéns camarada. Acompanhei seus dois artigos e achei muito legal. Já conhecia, mas fiz questão de ler pois sempre pode existir umas dicas interessantes. :D

    Abraços
    Diego

  2. Tentei tirar os serviços mysql e apache2 e ele me retornou o seguinte:
    update-rc.d: /etc/init.d/mysql exists during rc.d purge (use -f to force)
    Alguém sabe o que significa?

  3. alessandro, é por isso que usamos o -f no nosso tutorial. O que acontece é que o update-rc.d vê que o arquivo mysql ainda existe no diretório /etc/init.d e fica com peso na consciência de remove-lo :). Agora sério, se não existisse o arquivo mysql ele não reclamaria e deixaria de fazer.

    O Ubuntu, por padrão, coloca todos os serviços instalados na inicialização (se instalou é porque quer usar). E se não quisermos que o Mysql nunca inicie no boot (pois queremos iniciar manualmente), temos que tira-lo “na mão”.

  4. Muito bom pois acredito que informações compartilhadas são muito úteis eu mesmo havia esquecido comando e o seu blog é muito didático pois eu nem precisei me esforçar e já resolvi o meu problema

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *