Start bei Emit funktioniert nicht beim Upstart
445
Lafada
Ich arbeite daran, den Dienst neu zu starten, wenn er gestoppt ist.
Ich suchte upstart
, um den Dienst wieder aufzunehmen. Ich habe ein paar Antworten gefunden .
Ich habe apache2
Service zum Testen genommen. Ich habe den Code wie folgt geändert.
# File : /etc/init.d/apache2 ... ... # # Function that stops the daemon/service # do_stop() { # Return # 0 if daemon has been stopped # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred # either "stop" or "graceful-stop" local STOP=$1 # can't use pidofproc from LSB here local AP_RET=0 # send stopping apache event echo "Stopping....." initctl emit stopping-apache2 if pidof $DAEMON > /dev/null 2>&1 ; then if [ -e $PIDFILE ] && pidof $DAEMON | tr ' ' '\n' | grep -w $(cat $PIDFILE) > /dev/null 2>&1 ; then AP_RET=2 else AP_RET=1 fi else AP_RET=0 fi # AP_RET is: # 0 if Apache (whichever) is not running # 1 if Apache (whichever) is running # 2 if Apache from the PIDFILE is running if [ $AP_RET = 0 ] ; then # send stopping apache event echo "Stopped.....1" initctl emit stopped-apache2 return 1 fi if [ $AP_RET = 2 ] && apache_conftest ; then $APACHE2CTL $STOP > /dev/null 2>&1 apache_wait_stop $? # send stopping apache event echo "Stopped.....2" initctl emit stopped-apache2 return $? else if [ $AP_RET = 2 ]; then clear_error_msg APACHE2_INIT_MESSAGE="The apache2$DIR_SUFFIX configtest failed, so we are trying to kill it manually. This is almost certainly suboptimal, so please make sure your system is working as you'd expect now!" killproc -p $PIDFILE $DAEMON apache_wait_stop $? # send stopping apache event echo "Stopped.....3" initctl emit stopped-apache2 return $? elif [ $AP_RET = 1 ] ; then APACHE2_INIT_MESSAGE="There are processes named 'apache2' running which do not match your pid file which are left untouched in the name of safety, Please review the situation by hand". # send stopping apache event echo "Stopped.....4" initctl emit stopped-apache2 return 2 fi fi } ... ...
Hinweis : Nachricht mit sendeninitctl emit stopped-apache2
Dann geändert apache2.conf
, um den Startvorgang für dieses Ereignis auszuführen.
# File /etc/init/apache2.conf # apache2 # the purpose of this job is # * start apache2 in upstart rather than SysV startup start on stopped-apache2 stop on runlevel [016] pre-start script export RUNLEVEL=2 [ -f /var/lib/apache2.enable ] && /etc/init.d/apache2 start end script post-stop exec /etc/init.d/apache2 stop
Wenn ich aufhöre, habe ich eine Nachricht erhalten.
root@localhost:~# /etc/init.d/apache2 stop [....] Stopping web server: apache2Stopping..... Stopped.....2 . ok
Aber es scheint nicht auszuführen start on stopped-apache2
.
Ich starte auch wieder mit initctl restart apache2
.
Ich habe etwas verpasst ?
0 Antworten auf die Frage
Verwandte Probleme
-
7
Welche Windows-Dienste kann ich sicher deaktivieren?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
6
Vollbild-Flash langsam in KDE 4
-
1
Was kann ich unter Windows XP ausschalten, um Speicher freizugeben, ohne alles zu beschädigen
-
3
Pakete in einem seltsamen Zustand
-
3
Was in aller Welt ist ctfmon.exe?
-
1
Gibt es einen kostenlosen E-Mail-Dienst, der über einen Webservice verfügbar ist?
-
1
Portable Apps Starter kann auf dem Flash-Laufwerk nicht automatisch gestartet werden
-
5
Ist es möglich / machbar / sinnvoll, eine Online-Zeitmaschine für OS X zu erstellen?
-
3
Acer anbmServ mit 99% CPU - wie kann ich diesen Dienst deaktivieren?