Como associar um script no momento da inicialização a um nível de execução específico?

4

Estou tentando entender como funcionam os níveis de execução. Eu entendo o significado dos 7 níveis de execução e entendo que eles geralmente eram configurados por /etc/inittab , que costumava chamar /etc/init.d/rc , que chamou os vários scripts para configurar os diferentes níveis de execução e como eles deveriam se comportar.

Agora estou em uma máquina Ubuntu Server (12.04) e vejo que o arquivo inittab não é mais usado e que, em vez disso, os scripts são encontrados no diretório /etc/init .

Agora, suponha que eu queira executar um script no momento da inicialização (por exemplo, para iniciar um aplicativo). Normalmente eu faria isso editando o arquivo /etc/init.d/rc.local .

E aí vem minha pergunta: se eu editar este arquivo, esse script será executado para todo nível de execução ?

Se eu quiser que o script funcione apenas no nível de execução 5, por exemplo, devo colocar esse script na pasta /etc/rc5.d/ ? Ou existe outra maneira de fazer isso?

    
por user1301428 27.08.2013 / 14:09

2 respostas

1

Ok, então foi o que descobri:

As versões mais recentes do Ubuntu usam o upstart (como @polemon apontou corretamente), que usa arquivos de configuração específicos no diretório /etc/init para configurar o nível de execução no qual um script deve ser executado. O Upstart coloca os arquivos de trabalho do upstart na pasta /etc/init e nos scripts de inicialização normais em /etc/init.d e nas várias pastas /etc/rc*.d e, na verdade, é capaz de executar os dois.

Sistemas que não usam upstart usam somente /etc/init.d e /etc/rc*.d . Neste caso, os runlevels são definidos adicionando um link simbólico ao script na pasta /etc/rc*.d apropriada.

Além disso, aparentemente rc.local executa os scripts no runlevel multiusuário.

    
por 27.08.2013 / 15:27
3

No Ubuntu, isso é chamado de Upstart . Eu sugiro que você leia o Cookbook , ele discute como criar scripts para serem executados em um nível de execução específico (pseudo).

O que você está se referindo é o sistema init "System V". A ideia é ter as coisas iniciadas simultaneamente. Eu sugiro que você dê uma olhada na funcionalidade instance do Upstart.

    
por 27.08.2013 / 14:19