Zde mám aplikaci nasazenou na linux, chci, aby se aplikace automaticky spustila při spuštění linuxu. Používám příkaz jako 'sudo ./start'
pro spuštění aplikace.
Jak to mohu udělat?
OS:CentOS 6
Přijatá odpověď:
Nemohu doporučit přidávat věci do /etc/rc.local
. Je to pozůstatek starých unixových časů. Existují Linuxy, které již nepodporují rc.local
.
Může však správně spustit vaši aplikaci/službu, ale nikdy neukončí váš proces elegantně.
Je lepší použít vlastní systémový mechanismus init skriptů (Systemd, Upstart, …). Napsal bych rc skript, který vypadá takto (ve vašem systému může být kostra/šablona v /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 $?
Umístěte svůj skript do /etc/init.d/, udělejte jej spustitelný a přidejte jej do systémových úrovní běhu 3, 4 a 5:
chkconfig --level 345 <servicename> on
Také jej můžete ručně spustit a zastavit pomocí:
service <servicename> start
service <servicename> stop