[solved] Wählerisches Startscript

  • Hallo Forum,


    ich habe hier auf meinem Ubuntu-VDR (siehe Signatur VDR2) ein sehr wählerisches Startscript. Es soll eigentlich den vdradmin starten. In /etc/init.d liegt ein Script "vdradmin-am", welches manuell aufgerufen wunderbar funktioniert. Binde ich dieses per "update-rc.d vdradmin-am defaults" in das rc-System ein, werden zwar die Symlinks korrekt angelegt, aber leider beim Starten völlig ignoriert. Erkennen kann ich das anhand von testweise eingefügten Logausgaben.


    Jetzt kommt das kuriose: Benenne ich das Script in beispielsweise "test" um, rufe anschließend "update-rc.d test defaults" auf, funktioniert der Systemstart wie gewümscht. Wie kann das sein? Liegt das irgendwo an der rc-sysinit.conf?


    Gruß,


    Peter

    VDR2 (produktiv):
    HW: ASRock Q1900M, Celeron J1900 2GHz, 4GB RAM, WD20EFRX (2TB), TechnoTrend Premium S2-6400, Digital Devices Cine S2 V7A
    SW: VDR 2.2.0 auf Kernel 5.4.0 (Ubuntu 20.04.1)


    VDR1 (Reserve):

    HW: Dell XPS420, Core2 Quad 2,40GHz, 3GB RAM, WD15EVDS (1,5TB), TechnoTrend Premium S2-6400, TeVii S470 DVB-S2

    SW: VDR 1.7.18 auf Kernel 2.6.35 (Ubuntu 10.10)

    Einmal editiert, zuletzt von pbuenger ()

  • Hat es einen korrekten Header (Required-Start:;Required-Stop:;Default-Start:;Default-Stop:) anhand update-rc.d es in eine deinierte Reihenfolge einbettet?


    Weil wenn nicht dann gehts vermutlich teilweie Alphabetisch und es wird evtl. (unter dem nicht funktionierenden Namen) gestartet bevor notwendige Sachen zur Verfügung stehen.


    welches manuell aufgerufen wunderbar funktioniert.


    Mittels "invoce-rc.d"?


    Ferner beachten das beim Systemstart und beim Start von der Konsole evtl. unterschiedliche Shells verwendet werden.


    cu

  • Der Header sieht so aus:



    Manuell rufe ich es mit "/etc/init.d/vdradmin-am start" auf.

    VDR2 (produktiv):
    HW: ASRock Q1900M, Celeron J1900 2GHz, 4GB RAM, WD20EFRX (2TB), TechnoTrend Premium S2-6400, Digital Devices Cine S2 V7A
    SW: VDR 2.2.0 auf Kernel 5.4.0 (Ubuntu 20.04.1)


    VDR1 (Reserve):

    HW: Dell XPS420, Core2 Quad 2,40GHz, 3GB RAM, WD15EVDS (1,5TB), TechnoTrend Premium S2-6400, TeVii S470 DVB-S2

    SW: VDR 1.7.18 auf Kernel 2.6.35 (Ubuntu 10.10)

  • Manuell rufe ich es mit "/etc/init.d/vdradmin-am start" auf.


    Probiere mal
    ---
    invoke-rc.d vdradmin-am start
    ---
    das ist wählerischer (z.B. startet das Script hier nicht wenn es nicht das "ausführbar" Attribut hat) als der direkte Shellaufruf und besser geeignet zum Debuggen.



    Ferner (immer mal wieder sinnig) mal checkbashisms drüberlaufen lassen. /bin/sh verweist nicht mehr auf bash (so wie früher üblich), darüber bekommt man auch immer mal wieder gerne einige Seiteneffekte rein (weil die Loginshell ist immer noch bash).


    cu

  • Sodele, ich habe nun mal ein bisschen Zeit zum Forschen gefunden. Also das läuft ja nun recht umständlich mit upstart und den alten System V Init-Scripten. Da startet upstart irgendwann die /etc/init/rc-sysinit.conf, welche wiederum die /etc/init.d/rcS aufruft. Diese ihrerseits startet /etc/init.d/rc, welche dann nun endlich die alten Scripte in /etc/rc0.d ... /etc/rcS.d aufruft.


    Jetzt habe ich in /etc/init.d/rc ein paar Debugausgaben hineingebastelt und folgende Merkwürdigkeit gefunden: Zuerst werden alle Killfiles abgearbeitet. Danach kommen die Startfiles dran, jeweils im passenden rc-runlevel-Directory. Beim Starten der Scripte /etc/rc2.d/@S20.... passiert es dann: das Script /etc/init.d/rc kommt nicht bis zum Ende. Irgendwo bei den letzten S20-Scripten wird es von wem auch immer abgeschossen. So entscheidet letztendlich der Name des Scriptes, wo es in der Reihenfolge steht und ob die Zeit noch zur Ausführung reicht bevor /etc/init.d/rc stirbt.


    Warum das so ist, kann ich mit meinen Fähigkeiten wohl nicht herausfinden.


    Gruß,


    Peter

    VDR2 (produktiv):
    HW: ASRock Q1900M, Celeron J1900 2GHz, 4GB RAM, WD20EFRX (2TB), TechnoTrend Premium S2-6400, Digital Devices Cine S2 V7A
    SW: VDR 2.2.0 auf Kernel 5.4.0 (Ubuntu 20.04.1)


    VDR1 (Reserve):

    HW: Dell XPS420, Core2 Quad 2,40GHz, 3GB RAM, WD15EVDS (1,5TB), TechnoTrend Premium S2-6400, TeVii S470 DVB-S2

    SW: VDR 1.7.18 auf Kernel 2.6.35 (Ubuntu 10.10)

  • Ha! Problem gelöst!


    Kleiner Fehler, große Wirkung: Das vdr-Script in /etc/init.d war schuld. Dorf sah der runvdr-Aufruf so aus:


    Code
    d_start() { 
    /usr/local/bin/runvdr
    }


    Hier fehlte das '&' am Zeilenende, das Script kehrte also nie zurück zum aufrufenden Script, der Start aller hinter $S20vdr liegenden Programme fand nicht statt.


    Wann und wobei das '&' verlorenging, kann ich nicht mehr nachvollziehen. Immerhin hat das System ja vorher eine ganze Zeit lang anstandslos gebootet.


    Peter

    VDR2 (produktiv):
    HW: ASRock Q1900M, Celeron J1900 2GHz, 4GB RAM, WD20EFRX (2TB), TechnoTrend Premium S2-6400, Digital Devices Cine S2 V7A
    SW: VDR 2.2.0 auf Kernel 5.4.0 (Ubuntu 20.04.1)


    VDR1 (Reserve):

    HW: Dell XPS420, Core2 Quad 2,40GHz, 3GB RAM, WD15EVDS (1,5TB), TechnoTrend Premium S2-6400, TeVii S470 DVB-S2

    SW: VDR 1.7.18 auf Kernel 2.6.35 (Ubuntu 10.10)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!