He agregado un nuevo script a /etc/init/
llamado minecraft.conf
que contiene el script:
start on startup
stop on shutdown
respawn
respawn limit 20 5
script
export HOME="/root"
exec /root/minecraft/start.sh 2>&1 >> /var/log/minecraft.log
end script
post-start script
echo "minecraft started"
Cuando lo intento start minecraft
me sale el error:start: Unknown job: minecraft
He intentado correr initctl list
y mi trabajo de Minecraft no está en la lista. He intentado correr initctl reload-configuration
y no hace ninguna diferencia.
Otros trabajos enumerados por initctl list
trabajo funcionan bien con iniciar, detener y reiniciar.
¿Por qué el advenedizo no ve mi nuevo script?
/etc/init.d/
?/etc/init
y ahora está listo para reiniciar y usar el programa".sudo start minecraft
sin problemas. Aquí está el contenido del archivo de registro.~$ sudo cat /var/log/upstart/minecraft.log minecraft started /proc/self/fd/9: 3: exec: /root/minecraft/start.sh: not found minecraft started
¿Puede proporcionar más detalles sobre la versión de Ubuntu que está utilizando y alguna información útil de syslog?Respuestas:
Verifique los registros de inicio (está adentro
/var/log/syslog
) mientras recarga la configuración usandoinitctl reload-configuration
. Si hay un error de sintaxis, aparecerá allí. Por lo general, es por eso que no puede usar su nueva configuración inicial.fuente
Una manera fácil de verificar la sintaxis de su script es con el siguiente comando:
Descubrí que incluso con un archivo Upstart válido si el archivo no existía cuando el servidor se inició por última vez, tengo que reiniciar el servidor para que Upstart pueda ver el archivo.
fuente
Me siento un poco tonto ... Pero aquí está:
Me perdí la estrofa "final script" desde el final del script inicial ...
debería haber sido
Sin
end script
embargo, no estoy seguro de por qué funcionó para @schkovich sin el ...fuente
En mi caso, era un
author
campo vacío , como este:Funcionó solo después de agregar algo en las comillas.
también estaba lanzando
/etc/init/servicename.conf:2: Expected token
a syslog en lugar de stdout . Demasiado ocupado para presentar un informe de error para un paquete moribundo.fuente
Quizás no sea aplicable específicamente a esto, pero vale la pena mencionarlo: si edita un archivo de configuración Upstart para un servicio que se está ejecutando, la ejecución
restart
NO vuelve a cargar la configuración. Debe ejecutarstop
ystart
que los nuevos cambios surtan efecto.http://upstart.ubuntu.com/cookbook/#restart
fuente