Qui ho un'applicazione distribuita su Linux, voglio che l'app si avvii automaticamente all'avvio di Linux. Sto usando un comando come 'sudo ./start'
per avviare l'applicazione.
Come posso farlo?
Sistema operativo:CentOS 6
Risposta accettata:
Non posso consigliare di aggiungere cose in /etc/rc.local
. È un relitto dei vecchi tempi di Unix. Ci sono Linux che non supportano più rc.local
.
Tuttavia, potrebbe avviare correttamente la tua applicazione/servizio, ma non interrompe mai il processo in modo corretto.
È meglio utilizzare il meccanismo degli script di inizializzazione del sistema (Systemd, Upstart, ...). Scriverei uno script rc simile a questo (potrebbe esserci uno scheletro/modello sul tuo sistema in /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 $?
Posiziona il tuo script in /etc/init.d/, rendilo eseguibile e aggiungilo ai runlevel di sistema 3, 4 e 5:
chkconfig --level 345 <servicename> on
Inoltre puoi avviarlo e interromperlo manualmente con:
service <servicename> start
service <servicename> stop