Ici, j'ai une application déployée sur Linux, je veux que l'application démarre automatiquement au démarrage de Linux. J'utilise une commande comme 'sudo ./start'
pour démarrer l'application.
Comment puis-je faire ?
Système d'exploitation :CentOS 6
Réponse acceptée :
Je ne peux pas recommander d'ajouter des choses dans /etc/rc.local
. C'est une relique des vieux jours Unix. Il y a des Linux qui ne supportent plus rc.local
.
Cependant, il peut démarrer votre application/service correctement, mais il n'arrête jamais votre processus correctement.
Il est préférable d'utiliser le mécanisme propre au système des scripts d'initialisation (Systemd, Upstart, …). J'écrirais un script rc qui ressemble à ceci (il pourrait y avoir un squelette/modèle sur votre système dans /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 $?
Placez votre script dans /etc/init.d/, rendez-le exécutable et ajoutez-le aux niveaux d'exécution 3, 4 et 5 du système :
chkconfig --level 345 <servicename> on
Vous pouvez également le démarrer et l'arrêter manuellement avec :
service <servicename> start
service <servicename> stop