CentOS 6 e inicial

18

O novo CentOS 6 vem com o Upstart, substituindo o init. Estou tentando converter um arquivo / etc / inittab para o novo formato inicial. Este servidor específico possui apenas 15 entradas inittab, no entanto, outros servidores possuem> 30. Queremos principalmente a parte 'respawn' do inittab e do iniciante. No entanto, tenho lido toda a documentação inicial que consigo encontrar (que é praticamente TODA baseada no Ubuntu e aparentemente em uma versão mais antiga do iniciante) e não chego a lugar algum. Eu posso criar um arquivo de configuração (vamos chamá-lo de /etc/init/test.conf). O arquivo contém isso (observação, anonimizado)

start on runlevel [345]
stop on starting shutdown

respawn
#Comment about what it does
exec su -c "/usr/bin/ssh -2CNL 11111:127.0.0.1:11111 10.10.1.1" username

Se eu emitir um, initctl reload-configurationo trabalho é reconhecido. Eu posso começar ligando initctl start teste o trabalho começará.

No entanto, isso não funcionará em uma reinicialização, apenas manualmente. Eu tentei modificar o comando start para o seguinte, tudo sem sorte

start on started

start on (local-filesystems and net-device-up IFACE!=lo)

start on net-device-up IFACE=eth0 

e cerca de uma dúzia de outras maneiras que pude ver mencionadas em diferentes exemplos. nenhum parece iniciar o script. (test.conf, como todos os outros arquivos nesta pasta, pertence ao root e 644)

Estou perdendo algo claramente óbvio?

Brian
fonte

Respostas:

32

Encontrei um script inicial muito, muito, muito útil para pessoas que estão tendo problemas no futuro. Coloque isso em / etc / init /

# /etc/init/debug.conf
start on ( starting JOB!=debug \
or started JOB!=debug \
or stopping JOB!=debug \
or stopped JOB!=debug )
script
exec 1>>/tmp/log.file
echo -n "$UPSTART_JOB/$UPSTART_INSTANCE ($0):$$:`date`:"
echo "Job $JOB/$INSTANCE $UPSTART_EVENTS. Environment was:"
env
echo
end script

Esse script basicamente registra todos os trabalhos que iniciam ou param. Eu descobri que o CentOS 6 não 'emite' nada sobre os níveis de execução. (nem alguns dos outros eventos comuns que eu havia tentado. '). Procurar o arquivo de log que o trabalho de depuração cria em /tmp/log.file foi muito útil. Alterando o início do meu script de:

start on runlevel [345]

para

start on started sshd

todos os meus trabalhos parecem iniciar corretamente. Isso foi uma dor na parte traseira, pois todos os exemplos que encontrei usavam a sintaxe anterior.

Brian
fonte
Se eu pudesse votar isso mais de uma vez, eu teria.
Peter Mounce
15

Desculpe pelo necroposting, mas consegui resolver esse problema usando o seguinte:

start on stopped rc RUNLEVEL=[345]

"parado" não é um erro de digitação parece parar ao entrar em um nível de execução.

Leonid99
fonte
2
Obrigado pela dica! Necroposting é ótimo, quando é útil!
19712 Brian
5

Foi o que fiz (CentOS 6, Upstart 0.6.5) para depurar problemas de reaparecimento. Em um terminal diferente, faça

sudo initctl log-priority debug 
sudo tail -F /var/log/messages
Mark Lakata
fonte