Hier habe ich eine Anwendung für Linux bereitgestellt. Ich möchte, dass die App automatisch gestartet wird, wenn Linux gestartet wird. Ich verwende einen Befehl wie 'sudo ./start'
um die Anwendung zu starten.
Wie kann ich das tun?
Betriebssystem:CentOS 6
Akzeptierte Antwort:
Ich kann nicht empfehlen, Dinge in /etc/rc.local
hinzuzufügen . Es ist ein Relikt aus alten Unix-Tagen. Es gibt Linuxe, die rc.local
nicht mehr unterstützen .
Es kann jedoch Ihre Anwendung/Ihren Dienst korrekt starten, aber es wird Ihren Prozess niemals ordnungsgemäß herunterfahren.
Es ist besser, den systemeigenen Mechanismus von Init-Skripten (Systemd, Upstart, …) zu verwenden. Ich würde ein rc-Skript schreiben, das so aussieht (es könnte ein Skeleton/Template auf Ihrem System in /etc/init.d/skeleton
geben ):
#!/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 $?
Legen Sie Ihr Skript in /etc/init.d/ ab, machen Sie es ausführbar und fügen Sie es den Systemrunleveln 3, 4 und 5 hinzu:
chkconfig --level 345 <servicename> on
Sie können es auch manuell starten und stoppen mit:
service <servicename> start
service <servicename> stop