Gerade nochmal ausprobiert und ich muss mal laut nachdenken:
- Versuch: /etc/init.d/homegear stop
root@debian:/var/www# /etc/init.d/homegear stop
[ ok ] Stopping homegear (via systemctl): homegear.service.
Ergebnis: Prozess läuft immer noch. Im Log auch nicht erkennbar, dass der Prozess irgendein Signal empfangen hätte. Auch nicht Minuten später eine Reaktion, läuft halt einfach weiter.
root@debian:/var/www# ps -ef|grep homegear
homegear 24824 1 0 17:40 ? 00:00:58 /usr/bin/homegear -p /var/run/homegear/homegear.pid -d
- Versuch: kill 24824
Dazu erscheint im Log dann:
10/15/15 22:59:58.497 (Shutdown) => Stopping Homegear (Signal: 15)
10/15/15 22:59:58.497 (Shutdown) => Stopping CLI server
und etwa 10 Sekunden später dann:
10/15/15 23:00:06.550 (Shutdown) => Shutdown complete.
Das funktioniert also, dauert nur einen Moment.
Okay dann mal schauen warum das Initscript nicht will. Das ruft zum Beenden in Zeile 99 folgenden Command auf:
start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
Das Pidfile ist auch da und hat auch die aktuelle pid:
ps -ef|grep homegear
homegear 26734 1 0 23:03 ? 00:00:02 /usr/bin/homegear -p /var/run/homegear/homegear.pid -d
cat /var/run/homegear/homegear.pid
26734
Passt. Ein manueller Aufruf funktioniert auch, der Shutdown wird durchgeführt:
start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/homegear/homegear.pid
Prozess beendet.
Ich sehe zwischendurch bei den Start-/Stop-Versuchen auch noch sporadisch sowas:
10/15/15 23:20:51.181 Error in file main.cpp line 238 in function void terminate(int32_t): Resource deadlock avoided
Jetzt ist wieder die Situation, dass im Log zwar “Shutdown completed” steht aber der Prozess ist noch da. Und er lässt sich auch mit einem normalen Kill nicht mehr beenden. Jetzt hilft nur noch ein kill -9
Gibt es schon Veränderungen an dieser Stelle, dann probiere ich gerne nochmal ein aktuelles nightly wenn es hilft. Meine Version ist vom 10. Okt.