Hi,
nachdem ja schon die Möglichkeit da ist, benutzerdefinierte Aktionen auszuführen, bevor der Container gestoppt wird, und mich das auf der CCU schon immer gestört hat, das die ExecEngine von Homeputer quasi den Stecker gezogen bekommt, und nicht sauber beendet wird, möchte ich das in die /etc/piVCCU/pre-stop.sh reinbauen. Jetzt kommt mein rudimentäres Bash-Wissen zu Tage: wenn die Ausführung des pre-stop.sh "länger" dauert, wartet die stop_container.sh dann solange, bis das andere Script fertig ist, oder wird das "geforked"?
Problem: Die ExecEngine hat keinen "einfachen" Hebel, an dem man ansetzen kann, um die zu Beenden, entweder ich müsste mal die Kommunikation von der Steuersoftware auf dem PC belauschen, was die so schickt, damit die Ausführung auf der CCU sauber beendet wird, ich habe aber auch selbst Routinen in meinem Homeputer-Projekt, die ich von "außen" Triggern kann, nur das Auslösen heißt nicht, das die fertig und durchgelaufen sind, von daher würde ich einfach so etwas wie ein sleep 5 nach dem Triggern in das pre-stop einbauen, das sollte auf jeden Fall lange genug sein.
Der Familienvater
Fragen zu stop_container.sh und pre-stop.sh
Moderator: Co-Administratoren
-
- Beiträge: 7151
- Registriert: 31.12.2006, 15:18
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Rhein-Main
- Danksagung erhalten: 35 Mal
- deimos
- Beiträge: 5410
- Registriert: 20.06.2017, 10:38
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Leimersheim
- Hat sich bedankt: 121 Mal
- Danksagung erhalten: 962 Mal
- Kontaktdaten:
Re: Fragen zu stop_container.sh und pre-stop.sh
Hi,
erstmal eine Warnung: Die Start und Stop Skripte werden nur dann ausgeführt, wenn die CCU vom Host aus beendet wird. Also z.b. nicht, wenn ein Neustart der CCU über die Weboberfläche ausgeführt wird. Die sind also eher für Logik im Bezug auf LXC zu betrachten, deswegen sind sie auch nur spärlich dokumentiert.
Die Skripte haben keinerlei Forkingoder Watchdog Funktion drin, im Zweifel werden sie also nie beendet.
Für dein Ziel wäre ein Init Script innerhalb der CCU vermutlich der bessere Weg.
Viele Grüße
Alex
erstmal eine Warnung: Die Start und Stop Skripte werden nur dann ausgeführt, wenn die CCU vom Host aus beendet wird. Also z.b. nicht, wenn ein Neustart der CCU über die Weboberfläche ausgeführt wird. Die sind also eher für Logik im Bezug auf LXC zu betrachten, deswegen sind sie auch nur spärlich dokumentiert.
Die Skripte haben keinerlei Forkingoder Watchdog Funktion drin, im Zweifel werden sie also nie beendet.
Für dein Ziel wäre ein Init Script innerhalb der CCU vermutlich der bessere Weg.
Viele Grüße
Alex
-
- Beiträge: 7151
- Registriert: 31.12.2006, 15:18
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Rhein-Main
- Danksagung erhalten: 35 Mal
Re: Fragen zu stop_container.sh und pre-stop.sh
Hi,
normal reicht das voll und ganz, über die WebUI mache ich selten einen Neustart, mir geht es eher um das geordnete Beenden im Falle z.B. apt-get upgrade, wenn piVCCU dafür den Container "unerwartet" stoppt, das dann eben noch mal die letzten Variableninhalte in Homeputer entsprechend weggeschrieben werden.
Wenn man das über die runlevel-Control machen wollte, wohin im Container müsste denn das Script? Es gibt ja keine /etc/config/rc.0 und ähnliche Ordner, es gibt nur /etc/config/rc.d/, und da drin liegt ein Start/Stop-Script für die ExecEngine, nur "killt" das mit stop einfach alle Contronics-Prozesse dem Namen nach, das würde ich auch gerne so lassen, weil man das manchmal auch braucht. Natürlich könnte ich für das harte abschießen soetwas wie ein "forcestop" reinmachen, und das normale stop in ein "soft-Stop" umbauen.
Der Familienvater
normal reicht das voll und ganz, über die WebUI mache ich selten einen Neustart, mir geht es eher um das geordnete Beenden im Falle z.B. apt-get upgrade, wenn piVCCU dafür den Container "unerwartet" stoppt, das dann eben noch mal die letzten Variableninhalte in Homeputer entsprechend weggeschrieben werden.
Wenn man das über die runlevel-Control machen wollte, wohin im Container müsste denn das Script? Es gibt ja keine /etc/config/rc.0 und ähnliche Ordner, es gibt nur /etc/config/rc.d/, und da drin liegt ein Start/Stop-Script für die ExecEngine, nur "killt" das mit stop einfach alle Contronics-Prozesse dem Namen nach, das würde ich auch gerne so lassen, weil man das manchmal auch braucht. Natürlich könnte ich für das harte abschießen soetwas wie ein "forcestop" reinmachen, und das normale stop in ein "soft-Stop" umbauen.
Der Familienvater
- deimos
- Beiträge: 5410
- Registriert: 20.06.2017, 10:38
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Leimersheim
- Hat sich bedankt: 121 Mal
- Danksagung erhalten: 962 Mal
- Kontaktdaten:
Re: Fragen zu stop_container.sh und pre-stop.sh
Hi,
idealerweise in /etc/init.d
Wobei das bei einem piVCCU Update im Zweifel überschrieben wird, also sollte es über ein Addon beim Start ggf. wieder angelegt werden. (ähnlich zu cuxd).
Wenn dir die Einschränkung reicht kannst du es natürlich auch erst mal mit den pivccu Skripten versuchen.
Viele Grüße
Alex
idealerweise in /etc/init.d
Wobei das bei einem piVCCU Update im Zweifel überschrieben wird, also sollte es über ein Addon beim Start ggf. wieder angelegt werden. (ähnlich zu cuxd).
Wenn dir die Einschränkung reicht kannst du es natürlich auch erst mal mit den pivccu Skripten versuchen.
Viele Grüße
Alex