init.d es el viejo y obsoleto sistema para iniciar demonios; Esto ha sido suplantado por advenedizo . Upstart tiene la ventaja de ser mucho más fácil de configurar y permite una secuencia adecuada de la inicialización de la tarea.
Los archivos de configuración para el programa de inicio viven en / etc / init y si su daemon no tiene requisitos previos, puede ser tan simple como tty1.conf:
# tty1 - getty
#
# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.
start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]
respawn
exec /sbin/getty -8 38400 tty1
en cuyo caso puede copiar ese archivo y modificarlo al gusto. Las configuraciones más complejas se documentan mejor en el sitio inicial y en otras entradas en / etc / init.
agregado en respuesta al comentario
Ya sea que use upstart o init.d, aún necesitará alguna forma de determinar cuándo Firebird se inicializa correctamente. Desafortunadamente, Firebird en sí mismo no parece tener una buena forma de verificar que esté instalado y funcionando . Por lo tanto, la recomendación de pegar el inicio de su programa en /etc/rc.local es ciertamente la más fácil, y en Ubuntu, al menos, se garantiza que se ejecute lo más tarde posible en el proceso de arranque.
Si no desea migrar a UPSTART, pero desea el enfoque clásico, debe:
NOTA: estoy guardando el servicio y el programa con el mismo nombre en diferentes directorios (pero puede cambiar esto, siempre que se refleje en su archivo de servicio). ¡cambie "myscriptname" y "myprogramname" a nombres reales!
guarde su programa que se ejecutará como un servicio en / usr / sbin
sudo cp myprogramname /usr/sbin/myscriptname
crear un script de inicio básico (use /etc/init.d/skeleton como referencia)
mueva este script a /etc/init.d
sudo mv /etc/init.d/myscriptname
otorgue a este script permiso de ejecución (utilicé 775, pero puede configurarlo más bajo)
sudo chmod 755 /etc/init.d/myscriptname
goto /etc/init.d
cd /etc/init.d
incluir en la lista de inicio con baja prioridad de inicio
sudo update-rc.d myscriptname defaults 97 03
reinicie su máquina y verifique si el servicio se inició correctamente
Si su servicio no se inicia correctamente, primero debe verificar si se ejecuta cuando lo llama a mano:
a continuación incluyo un archivo de servicio de muestra que realmente funciona. compárelo con el servicio de esqueleto para comprender lo que necesita configurar. NOTA: esto funciona en la implementación de Ubuntu 12.04 amazon cloud AWS EC2 classic LAMP (también en Kubuntu 15.10).
fuente
Haga una copia de /etc/init.d/skeleton y edítela en los lugares apropiados para iniciar / detener / reiniciar su servicio. Está muy bien comentado, por lo que debería poder crear un script init.d que funcione en poco tiempo.
fuente
/etc/rc.local
fuente
pleaserun
es un script de ruby que intenta resolver el problema de crear automáticamente un script de inicio con un solo comando. citando de su página:"Con pleaserun, puede generar los siguientes lanzadores / scripts / lo que sea:
"startd
upstart
systemd
runit
sysv init"
También detecta qué sistema de inicio está en uso, por lo que genera el script en consecuencia.
fuente