Ubuntu, controle a inicialização do init

3

O Ubuntu usa upstart em vez de sysvinit. No entanto, ainda existem runlevels e os links neles.

Eu instalei o tor e ele se adicionou à inicialização do sistema operacional. Agora eu quero removê-lo e as opções populares são remover os links de iniciar e parar o serviço de runlevels ou tornar o script /etc/init.d/ não executável. Isso é bom, mas isso será problemático caso eu queira colocá-lo novamente na lista de inicialização. Como saberia colocar as seqüências adequadas nos diretórios de nível de execução adequados?

Existe algum guia completo? Quais são as regras para isso? Quaisquer ferramentas para gerenciar o init?

Por favor, diga

    
por Xolve 11.06.2010 / 08:13

3 respostas

8

O SysVinit funciona assim. Os scripts de inicialização de cada pacote estão localizados em /etc/init.d . Links para esses scripts estão localizados em /etc/rcS.d e / etc / rc [0-6] .d . Esses links começam com S (start) ou K (kill) e um número de 2 dígitos.

  • Quando o sistema inicializa e o processo SysVinit é iniciado, ele procura em /etc/rcS.d e executa os scripts que começam com S , ordenados pelo número . (Acredito que passe o argumento "start" para os scripts, mas não tenho certeza.)

  • Depois que todos os scripts /etc/rcS.d são processados, o sistema começa a se mover para um determinado nível de execução. No Ubuntu, inicializando na área de trabalho normal, o nível de execução padrão é 2 . Então o SysVinit procura em /etc/rc2.d e

    1. interrompe todos os serviços com links que começam com K , ordenados pelo número; e
    2. inicia todos os serviços com links que começam com S , ordenados pelo número.

    Se você inicializou no modo de recuperação do Ubuntu, estará inicializando no nível de execução 1 . Depois que todos os serviços são iniciados, o nível de execução do sistema é definido oficialmente.

  • Finalmente, o sistema executa o script /etc/rc.local .

Se você alternar os níveis de execução mais tarde, o SysVinit executará o mesmo processo básico: ele não verifica /etc/rcS.d , mas vai direto ao processamento dos links em / etc / rcN .d <(onde N é o nível de execução que está sendo digitado).

Você também pode escrever um script Upstart. Eu tenho escrito sobre o Upstart anteriormente , portanto, verifique lá para mais detalhes. Scripts upstart são mantidos em / etc / init ; para escrevê-los, examine os scripts existentes para ter uma ideia de como funciona e leia as init (5) manpage .

    
por 11.06.2010 / 10:58
1

Eu sei apenas update-rc.d como uma ferramenta. A página de manual dá uma boa explicação de como usá-la e não é muito difícil de aprender.

Obrigado ao Quack que me contou sobre chkconfig . Verifique sua postagem aqui .

    
por 11.06.2010 / 08:17
0

Aqui está o homem update-rc.d página . Basicamente, remover os links rc.d não funcionará, pois eles serão restaurados na atualização. A maneira correta é:

sudo update-rc.d tor disable

Que renomeia os links S (start) nos links /etc/rc?.d para K (stop). Isso também funcionaria:

sudo rename 's:/S:/K:g' /etc/rc?.d/S*tor
    
por 11.06.2010 / 13:48