Fragen zu stop_container.sh und pre-stop.sh

Virtualisierte CCU für Raspberry Pi und Clones

Moderator: Co-Administratoren

Antworten
Familienvater
Beiträge: 7151
Registriert: 31.12.2006, 15:18
System: Alternative CCU (auf Basis OCCU)
Wohnort: Rhein-Main
Danksagung erhalten: 35 Mal

Fragen zu stop_container.sh und pre-stop.sh

Beitrag von Familienvater » 28.12.2017, 16:46

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

Benutzeravatar
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

Beitrag von deimos » 28.12.2017, 17:01

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

Familienvater
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

Beitrag von Familienvater » 28.12.2017, 18:28

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

Benutzeravatar
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

Beitrag von deimos » 28.12.2017, 18:51

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

Antworten

Zurück zu „piVCCU“