Archiv > Development
Mld-4
wino:
Gibt es bei MLD so etwas wie eine respawn Funktion? Mir geht es dabei um Daemonen die nach Beendigung neu gestartet werden sollen.
Aus dem Upstartscript erkennt man was ich meine.
--- Code: ---start on started irserver
stop on stopping irserver
respawn
script
test -f /usr/bin/irserver2uinput || exit 0
exec /usr/bin/irserver2uinput
end script
--- End code ---
MfG
wino
clausmuus:
Bisher nur für jeden Fall einzeln erstellt (z.B. xorg, VDR, xbmc, vdr-sxfe). Da gibt's dann jeweils nen run... Script das sich drum kümmert. Es gibt bisher aber auch bei jedem ne besondere Behandlung für den Neustart, weshalb nen gemeinsames Script nicht gehen würde.
Claus
wino:
Danke, werde ich mir mal anschauen. Wie kann man die Startreihenfolge der Daemons festlegen. Habe in der rc.init zwar etwas von before= after= usw. gesehen, das ist meiner Meinung nach eine recht unzuverlässige Methode und nicht konstant genug.
Konkretes Beispiel Fernbedienungen:
irserver muss immer vor irserver2uinput und eventlircd starten. Danach erst vdr. Wenn vdr aus irgend einem Grund neu startet, dürfen die vorgenannten Programme nicht neu gestartet werden. Ir-keytable setzt (wenn nicht durch eine .rules geregelt) /sys/class/rc/rc0 voraus. Wenn sich vdr in einer Schleife befand, habe ich schon rc76 gesehen, also völlig indiskutable.
Kann natürlich auch daran liegen, dass ich die Variablen falsch einsetze.
Wenn das mit den Remotes zuverlässig funktionieren soll, ist der Ablauf für die verschiedenen USB und Lirc-Empfänger etwa so.
irserver - irserver2uinput
clausmuus:
Das mit dem before und after ist zuverlässig, wenn die init Scripte sauber geschrieben sind, also sich erst beenden wenn der Dienst auch wirklich läuft. Das einzige was nicht behandelt wird, ist ein Neustart des VDR falls der lirc Dienst abstürtzt und neu gestartet wird.
Vor oder nach welchem anderen init Script gestartet werden soll, wird im init Script im Bereich "init" angegeben. Neben der Variable before=vdr muss dann auch noch start=1 gesetzt werden.
In der MLD werden dienste halt nicht erst bei bedarf gestartet (wie bei Ubuntu) sondern wie bei initd (das die meisten anderen modernen Distries verwenden, die nicht auf system5 setzen) direkt beim booten per before und after Regeln.
Claus
wino:
Da habe ich sicherlich Fehler in den Startscripten eingebaut. Daher würde ich mich freuen wenn Du mir an Hand des folgenden Beispiels den jeweiligen init) Bereich aufzeigen könntest.
Die geforderte Reihenfolge:
Irserver - irserver2uinput
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version