Aquí tengo una aplicación implementada en Linux, quiero que la aplicación se inicie automáticamente cuando se inicie Linux. Estoy usando un comando como 'sudo ./start'
para iniciar la aplicación.
¿Cómo puedo hacer eso?
SO:CentOS 6
Respuesta aceptada:
No puedo recomendar agregar cosas en /etc/rc.local
. Es una reliquia de los viejos días de Unix. Hay Linuxes que ya no soportan rc.local
.
Sin embargo, puede iniciar su aplicación/servicio correctamente, pero nunca cierra su proceso correctamente.
Es mejor usar el mecanismo propio del sistema de scripts de inicio (Systemd, Upstart, …). Escribiría un script rc que se parece a esto (puede haber un esqueleto/plantilla en su sistema en /etc/init.d/skeleton
):
#!/bin/bash
. /etc/init.d/functions
start() {
echo -n "Starting <servicename>: "
#/path/to/the/executable/of/your/application
}
stop() {
echo -n "Shutting down <servicename>: "
#command_to_gracefully_end_the_application
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
#command_to_report_the_status
;;
restart)
stop
start
;;
*)
echo "Usage: <servicename> {start|stop|restart}"
exit 1
;;
esac
exit $?
Coloque su script en /etc/init.d/, hágalo ejecutable y agréguelo a los niveles de ejecución del sistema 3, 4 y 5:
chkconfig --level 345 <servicename> on
También puede iniciarlo y detenerlo manualmente con:
service <servicename> start
service <servicename> stop