Dienste über external starten nicht mehr

Es ist die Frage, ob wir rc.custum synchron oder asynchron starten wollen. Man kann auch sagen, wer sich da eine Endlosschleife einträgt, oder von FritzLoad eintragen lässt, hat Pech gehabt.

Ansonsten, für asynchron sollte es so aussehen:
Code:
Index: make/mod/files/root/etc/init.d/rc.mod
===================================================================
--- make/mod/files/root/etc/init.d/rc.mod	(revision 7011)
+++ make/mod/files/root/etc/init.d/rc.mod	(working copy)
@@ -61,7 +61,11 @@
 
 	#compat (may be removed later):
 	[ -r /tmp/flash/rc.custom ] && mv /tmp/flash/rc.custom /tmp/flash/mod/rc.custom
-	[ -r /tmp/flash/mod/rc.custom ] && log "$(. /tmp/flash/mod/rc.custom)"
+	if [ -r /tmp/flash/mod/rc.custom ]; then
+		echo -n "Starting rc.custom ... "
+		sh /tmp/flash/mod/rc.custom 0</dev/null 1>/dev/null 2>&1 &
+		echo "done."
+	fi
 
 	touch /tmp/.modstarted
Oder so, damit hat man auch Logging.:
Code:
Index: make/mod/files/root/etc/init.d/rc.mod
===================================================================
--- make/mod/files/root/etc/init.d/rc.mod	(revision 7011)
+++ make/mod/files/root/etc/init.d/rc.mod	(working copy)
@@ -61,7 +61,11 @@
 
 	#compat (may be removed later):
 	[ -r /tmp/flash/rc.custom ] && mv /tmp/flash/rc.custom /tmp/flash/mod/rc.custom
-	[ -r /tmp/flash/mod/rc.custom ] && log "$(. /tmp/flash/mod/rc.custom)"
+	if [ -r /tmp/flash/mod/rc.custom ]; then
+		echo -n "Starting rc.custom ... "
+		sh /tmp/flash/mod/rc.custom 0</dev/null 1>/var/log/rc.custom.log 2>&1 &
+		echo "done."
+	fi
 
 	touch /tmp/.modstarted
 
@olistudent

der Eintrag
Code:
sleep 20
cd /
chmod -R 777 /var/media/ftp/uStor01/
cd /var/media/ftp/uStor01/FritzLoad/bin; ./install.sh -g
in der rc-custom sollte für FritzLoad völlig ausreichen um alle Funktionen zu realisieren

mfg
 
Hallo zusammen,

die Idee hinter der Endlosschleife von Fritz!Load ist, dass man den USB Stick über Fritz!Load auswerfen kann und sobald der Stick wieder eingesteckt wird, dann wird auch Fritz!Load wieder aktiviert.
@ukvideo: fyi: install.sh -g bildet nur eine Möglichkeit der verschiedenen Installationsvarianten ab.
 
Letztlich geht es hier nicht um FritzLoad. FritzLoad ist nur ein Beispiel dafür, wie sich Leute eine Endlosschleife in die rc.custom einbauen können und nachher sich wundern, dass es Probleme gibt.

Ich persönlich wäre dafür, es so zu lassen, wie es ist. Wer seinerzeit in autoexec.bat etwas aufgerufen hat, was sich nicht beendete, hatte das gleiche Problem.

Der einzige Nachteil ist, dass die Leute dann hier ankommen und sich wundern, dass es nicht läuft.
 
Welchen Nachteil siehst du denn darin, wenn wir es so ändern, dass es unseren Start nicht beeinflusst?

Gruß
Oliver

edit: Solche Endlosschleifen verursachen momentan übrigens einen Reboot-Loop, weil "echo init-done > /dev/watchdog" nicht ausgeführt wird...
 
Zuletzt bearbeitet:
Seit wann ist denn das mit init-done?

In meiner Firmware ist init-done noch vor dem Ausführen von debug.cfg, und erst recht vor dem Aufruf von rc.mod, der in der letzten Zeile steht.

Ich mounte derzeit in rc.custom external über NFS. Ich weiß aber nicht, ob für den Rest hinter rc.custom external schon verfügbar sein muss oder nicht.

Wenn wir aber schon rc.custom asynchron aufrufen, würde ich die Reihenfolge noch etwas ändern:
Code:
--- make/mod/files/root/etc/init.d/rc.mod	(revision 7011)
+++ make/mod/files/root/etc/init.d/rc.mod	(working copy)
@@ -61,8 +61,12 @@
 
-	#compat (may be removed later):
-	[ -r /tmp/flash/rc.custom ] && mv /tmp/flash/rc.custom /tmp/flash/mod/rc.custom
-	[ -r /tmp/flash/mod/rc.custom ] && log "$(. /tmp/flash/mod/rc.custom)"
-
 	touch /tmp/.modstarted
 
 	/usr/lib/mod/menu-update
+
+	#compat (may be removed later):
+	[ -r /tmp/flash/rc.custom ] && mv /tmp/flash/rc.custom /tmp/flash/mod/rc.custom
+	if [ -r /tmp/flash/mod/rc.custom ]; then
+		echo -n "Starting rc.custom ... "
+		sh /tmp/flash/mod/rc.custom 0</dev/null 1>/var/log/rc.custom.log 2>&1 &
+		echo "done."
+	fi
Dadurch ist rc.custom das Letzte, was aufgerufen wird, und man spart sich nicht reproduzierbare Effekte dadurch, dass die Reihenfolge von rc.custom und den Anweisungen in rc.mod nicht definiert ist.
 
AVM hat in den Firmware Versionen mit udev die Startskripte überarbeitet und startet jetzt nach Nummer. Das letzte Skript von AVM hat S99-tail, darin wird rc.tail.sh aufgerufen, die wiederum das init-done schreibt. Seit cuma die Log-Funktion in rc.mod eingeführt hat, bleibt der Start aber bei der rc.custom hängen und geht nicht weiter. Vorher wurde wenigstens die rc.S zu Ende abgearbeitet, da die rc.custom gesourced wurde.

Ich bestehe nicht darauf die rc.custom asynchron aufzurufen. Aber zumindest die Umleitung bzw. das Schließen der FDs erscheint mir doch sehr sinnvoll.

Gruß
Oliver

edit: Wenn jemand in der rc.custom ein rc-Skript eines "externen" Addons aufruft, dann ist das verschieben von menu-update nicht gut.
 
Zuletzt bearbeitet:
Das letzte Skript von AVM hat S99-tail, darin wird rc.tail.sh aufgerufen, die wiederum das init-done schreibt.
Dann können wir rc.mod als S99-zzz-mod aufrufen, dann kommt es danach.
Wenn jemand in der rc.custom ein rc-Skript eines "externen" Addons aufruft, dann ist das verschieben von menu-update nicht gut.
Aber wenn rc.custom asynchron ausgeführt wird, ist es recht wahrscheinlich, dass menu-update erst später ausgeführt wird, es sei denn, die Abarbeitung von rc.custum ist "sehr schnell". Es ist gut möglich, dass menu-update vor, während oder nach rc.custom ausgeführt wird.
 
Beim echo gehört ein Leerzeichen hinter das -n.

Gibt es einen Grund, warum Du 0<&- verwendest? Damit wird fd 0 geschlossen. Es kann Probleme damit geben, sicherer ist es, auf /dev/null zu verbinden.
 
Also ich kriege external ueberhaupt nicht ans laufen ... (7390)

ich muss folgendes machen, offenstichtlich wird rc.external garnicht erst gestartet, liegt vielleicht daran, das ich external in den internen Flash der Box gestellt habe. (Sonst ist nichts auf der Box und die rc.XXX Files waren auch alle auf dem defaults)

Folgendes schafft abhilfe :


Code:
ln -s /var/media/ftp/external /mod/external
rc.Packet1
rc.Packet2
rc.Packet3

/Gompf
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.