18 votos

CentOS 6 y advenedizo

El nuevo CentOS 6 viene con Upstart, en sustitución de init. Estoy tratando de convertir un archivo /etc/inittab para el nuevo arranque del formato. Este servidor en particular sólo tiene 15 o así inittab entradas, sin embargo, otros servidores >30. Estamos principalmente querer que el 'respawn' parte de inittab y advenedizo. Sin embargo, he estado leyendo todo el advenedizo documentación que puedo encontrar, (que es casi TODO basado en Ubuntu, y al parecer en una versión anterior de upstart) y no llegar a ninguna parte. Puedo crear un archivo de configuración (vamos a llamarlo /etc/init/prueba.conf). El archivo contiene este (nota, anónimos)

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

Si emitir un initctl reload-configuration el trabajo es reconocido. Puedo empezar por llamar a initctl start test y el trabajo se va a iniciar.

Sin embargo, esto no funciona en un reinicio, solo manualmente. He intentado modificar el comando de inicio de la siguiente, todo ello sin suerte

start on started

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

start on net-device-up IFACE=eth0 

y alrededor de una docena de otras maneras pude ver mencionado en diferentes ejemplos. ninguno de ellos parece iniciar la secuencia de comandos. (la prueba.conf, como todos los otros archivos en esta carpeta, son propiedad de root, y 644)

Me estoy perdiendo algo que salta a la vista?

32voto

user63503 Puntos834

Me encontré con un muy, muy, muy útil advenedizo secuencia de comandos para las personas que están teniendo problemas en el futuro. Poner esto en /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

Este script básicamente los registros de todos los puestos de trabajo que iniciar o detener. He encontrado que CentOS 6 no 'emitir' nada acerca de los niveles de ejecución. (ni algunos de los otros eventos comunes había intentado.'). Busca el archivo de registro de depuración de trabajo crea en /tmp/log.archivo fue muy útil. Cambiando el inicio de mi script de:

start on runlevel [345]

a

start on started sshd

todos mis trabajos se inicie correctamente. Este fue un dolor en el trasero, ya que todos los ejemplos que he encontrado utiliza la antigua sintaxis..

14voto

Leonid99 Puntos136

Pena necroposting, pero lograron resolver este problema mediante el uso de los siguientes:

start on stopped rc RUNLEVEL=[345]

"detenido" no es una errata--rc parece detenerse al ingresar a un nivel de ejecución.

5voto

Mark Lakata Puntos123

Esto es lo que hice (CentOS 6, advenedizo 0.6.5) para depurar problemas de regeneración. En un terminal diferente,

sudo initctl log-priority debug 
sudo tail -F /var/log/messages

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: