Hi! Gibt's eigentlich analog zu boot.local ein Script, dass erst nach allen Runleveln ausgeführt wird, um da mal kurz ein paar Kommandos unterzubringen, oder muss man dann immer ein richtiges Runlevel-Script erstellen? Jörg@wörk -- Depart in pieces.... i.e., Split.
On Fri, Apr 05, 2002 at 02:18:32PM +0200, Jörg Lippmann wrote:
Gibt's eigentlich analog zu boot.local ein Script, dass erst nach allen Runleveln ausgeführt wird, um da mal kurz ein paar Kommandos unterzubringen,
Hm, nach allen Runleveln? Wie meinst du das?
oder muss man dann immer ein richtiges Runlevel-Script erstellen?
Ich wuerde immer ein Skript erstellen. Ist doch auch nicht so schwer: cp /etc/init.d/skeleton /etc/init.d/local.foo Peter
* Jörg Lippmann schrieb am 05.Apr.2002:
Gibt's eigentlich analog zu boot.local ein Script, dass erst nach allen Runleveln ausgeführt wird, um da mal kurz ein paar Kommandos unterzubringen, oder muss man dann immer ein richtiges Runlevel-Script erstellen?
Wie meinst Du das? Nach allen Runlevel? Mit init X kanst Du das Runlevel wechseln. Hierbei steht X für s,1,2,3,5,0 oder 6 Meinst Du ein Skript, daß nach jedem Runlevelwechsel ausgeführt werden soll? Sehe ich keinen Sinn drin. Ist doch ein Unterschied, ob ich nach Runlevel 1 oder nach Runlevel 5 wechsle, von Runlevel 0 und 6 mal ganz abgesehen, die ja für halt bzw. reboot stehen. Oder meinst Du ein Skript daß ausgeführt wird, nachdem man in einem ganz bestimmten runlevel gewechselt ist? Aber genau das machen ja die Runlevelskripte. Genau dafür sind sie doch da. Bernd -- Alle meine Signaturen sind rein zufällig und haben nichts mit dem Text oder dem Schreiber zu tun, dem ich antworte. Falls irgendwelche Unrichtigkeiten dabei sein sollten, so bedauere ich das. Es wäre nett, wenn Du mich benachrichtigen würdest. |Zufallssignatur 0
Hi!
* Jörg Lippmann schrieb am 05.Apr.2002:
Gibt's eigentlich analog zu boot.local ein Script, dass erst nach allen Runleveln ausgeführt wird, um da mal kurz ein paar Kommandos unterzubringen, oder muss man dann immer ein richtiges Runlevel-Script erstellen? Gibt es leider nicht. Du müsstes es selbst basteln. cp skeleton my_boot.local dann my_boot.local editieren und in den "start" - zweig die Dinge reinschreiben, die nachdem runlevel kommen sollen. (oder ein script ausführen, dass diese enthält. z.B. /etc/boot.local.after.runlevel
Naja, jetzt muss my_boot.local halt in jedem runlevel als letztes starten, also: cd /etc/init.d ln -sf ../my_boot.local rc1.d/S99zzzz_boot.local ln -sf ../my_boot.local rc2.d/S99zzzz_boot.local ln -sf ../my_boot.local rc3.d/S99zzzz_boot.local ln -sf ../my_boot.local rc4.d/S99zzzz_boot.local ln -sf ../my_boot.local rc5.d/S99zzzz_boot.local ln -sf ../my_boot.local rcS.d/S99zzzz_boot.local (../my_boot.local weil das aus Sicht von rc*.d ist) Sollte laufen Gruß Thomas
Am Freitag, 5. April 2002 18:38 schrieb Thomas Foecking:
cd /etc/init.d ln -sf ../my_boot.local rc1.d/S99zzzz_boot.local ln -sf ../my_boot.local rc2.d/S99zzzz_boot.local ln -sf ../my_boot.local rc3.d/S99zzzz_boot.local ln -sf ../my_boot.local rc4.d/S99zzzz_boot.local ln -sf ../my_boot.local rc5.d/S99zzzz_boot.local ln -sf ../my_boot.local rcS.d/S99zzzz_boot.local
(../my_boot.local weil das aus Sicht von rc*.d ist)
Genau mit den Links wirst Du ab SuSE 7.1 keine große Freude mehr haben, siehe 'man insserv', /etc/init.d/README und /etc/init.d/skeleton -- Machs gut | http://www.iiv.de/schwinde/buerger/tremmel/ Manfred | http://www.knightsoft-net.de
Hy,
Am Freitag, 5. April 2002 18:38 schrieb Thomas Foecking: ^ sorry, orginal im Archiv.
cd /etc/init.d ln -sf ../my_boot.local rc1.d/S99zzzz_boot.local ln -sf ../my_boot.local rc2.d/S99zzzz_boot.local ln -sf ../my_boot.local rc3.d/S99zzzz_boot.local ln -sf ../my_boot.local rc4.d/S99zzzz_boot.local ln -sf ../my_boot.local rc5.d/S99zzzz_boot.local ln -sf ../my_boot.local rcS.d/S99zzzz_boot.local
Wieso geht das nicht: cd /etc/init.d/ ln -s ./test ./rc[235].d/[SK]99test Ich dachte es läge an dem 2*[, aber mit for geht es auch nicht, wobei es an dem Audruck rc[235].d zu liegen scheint den [SK].. alleine geht. TIA -- :wq-y Maik
Hallo, Am Samstag, 6. April 2002 22:14 schrieb Maik Holtkamp:
Am Freitag, 5. April 2002 18:38 schrieb Thomas Foecking:
^ sorry, orginal im Archiv.
cd /etc/init.d ln -sf ../my_boot.local rc1.d/S99zzzz_boot.local ln -sf ../my_boot.local rc2.d/S99zzzz_boot.local ln -sf ../my_boot.local rc3.d/S99zzzz_boot.local ln -sf ../my_boot.local rc4.d/S99zzzz_boot.local ln -sf ../my_boot.local rc5.d/S99zzzz_boot.local ln -sf ../my_boot.local rcS.d/S99zzzz_boot.local
Wieso geht das nicht:
cd /etc/init.d/ ln -s ./test ./rc[235].d/[SK]99test
Ich dachte es läge an dem 2*[, aber mit for geht es auch nicht, wobei es an dem Audruck rc[235].d zu liegen scheint den [SK].. alleine geht.
Habe alle Schweinereien ausprobiert, zuerst nicht mit `ln',
sondern nur mit `echo'. Geht alles anstandslos.
Aus mir unklaren Gründen - vollkommen unklaren Gründen - geht
`ln' anders:
$ touch qrx
$ ln -s qrx [abc]qrx[abc]
$ ls -l | cut -c1-11,57-
insgesamt x
lrwxrwxrwx [abc]qrx[abc] -> qrx
-rw-r--r-- qrx
$
Wüßte auch gern, warum; zumindest kommt ihr in gröbere
Schwierigkeiten, wenn ihr auch noch einen Schrägstrich ('/')
dazwischen stehen habt.
Bertram
--
Bertram Scharpf
Hy, Am 02/04/07@06:56 schrieb Bertram Scharpf:
Am Samstag, 6. April 2002 22:14 schrieb Maik Holtkamp:
Wieso geht das nicht:
cd /etc/init.d/ ln -s ./test ./rc[235].d/[SK]99test
Ich dachte es läge an dem 2*[, aber mit for geht es auch nicht, wobei es an dem Audruck rc[235].d zu liegen scheint den [SK].. alleine geht.
Habe alle Schweinereien ausprobiert, zuerst nicht mit `ln', sondern nur mit `echo'. Geht alles anstandslos.
Siehe Davids Antwort auf meine andere mail. BTW: Sorry, dass ich 2* das gleiche schrieb, aber meine Mittags mail war gestern abend noch nicht bei mir zurück. Da ich während des schreibens der ersten mail so lange gefummelt hatte, dass ich beim verschicken einen imap timeout bekam, dachte ich sie wäre irgendwie verlorengegangen. -- :wq-y Maik
Hy, Am 02/04/05@18:38 schrieb Thomas Foecking:
* Jörg Lippmann schrieb am 05.Apr.2002:
Gibt's eigentlich analog zu boot.local ein Script, dass erst nach allen Runleveln ausgeführt wird, um da mal kurz ein paar Kommandos unterzubringen, oder muss man dann immer ein richtiges Runlevel-Script erstellen? Gibt es leider nicht. Du müsstes es selbst basteln. cp skeleton my_boot.local dann my_boot.local editieren und in den "start" - zweig die Dinge reinschreiben, die nachdem runlevel kommen sollen. (oder ein script
Damit das sauber wird würde ich zumindest in stop noch dafür sorgen, dass es auch wieder beendet wird und die K links anlegen
ausführen, dass diese enthält. z.B. /etc/boot.local.after.runlevel
Naja, jetzt muss my_boot.local halt in jedem runlevel als letztes starten, also:
cd /etc/init.d ln -sf ../my_boot.local rc1.d/S99zzzz_boot.local
Das würde ich nicht machen init 1 würde ich so schlank wie möglich halten. Es gab ja z.B. vor kurzem ein Update der glibc. Wenn Du das auf init 1 einspielst und Dein eingenes script braucht die glibc im passenden Augenblick hast Du IMHO ein schwerwiegendes Problem.
ln -sf ../my_boot.local rc2.d/S99zzzz_boot.local ln -sf ../my_boot.local rc3.d/S99zzzz_boot.local ln -sf ../my_boot.local rc4.d/S99zzzz_boot.local ln -sf ../my_boot.local rc5.d/S99zzzz_boot.local ln -sf ../my_boot.local rcS.d/S99zzzz_boot.local
Wenn Du da bist (cd /etc/init.d) eher: ln -s ./my_boot.local ./rc2.d/...
(../my_boot.local weil das aus Sicht von rc*.d ist)
Wenn Du in den rcx.d bist eher: ln -s ../myboot.local ./S99... BTW: Mit der f Option wäre ich hier vorsichtig.
Sollte laufen
Früher bestimmt. Ich weiss aber nicht genau wie das heute nach einem SuSEconfig mit dem Aufruf von insserv aussieht. Ich denke da muss noch etwas mehr in der Kopie des skeleton angepasst werden (INIT INFO, /etc/init.d/README). -- :wq-y Maik
Hy, Am 02/04/05@18:38 schrieb Thomas Foecking:
cd /etc/init.d ln -sf ../my_boot.local rc1.d/S99zzzz_boot.local ln -sf ../my_boot.local rc2.d/S99zzzz_boot.local ln -sf ../my_boot.local rc3.d/S99zzzz_boot.local ln -sf ../my_boot.local rc4.d/S99zzzz_boot.local ln -sf ../my_boot.local rc5.d/S99zzzz_boot.local ln -sf ../my_boot.local rcS.d/S99zzzz_boot.local
Wieso geht das nicht: ln -s ./my_boot.local ./rc[235].d/[SK]test das Problem liegt wohl am Ausdruck rc[235].d und nicht bei der doppelten Verwendung der Erweiterung denn: for i in /etc/int.d/rc[235].d; do ln -s ./my_boot.local \ /etc/init.d/rc$i/[SK]99test; done geht auch nicht :( und ohne den Ausdruck (nur [SK]) geht es. TIA. -- :wq-y Maik
Hallo, On Sat, 06 Apr 2002, Maik Holtkamp wrote:
Wieso geht das nicht:
ln -s ./my_boot.local ./rc[235].d/[SK]test
Weil die [] von der bash expandiert werden -- falls es solche Dateien gibt! ln bekommt also zu sehen: ln -s ./my_boot.local ./rc2.d/[SK]test ./rc3.d/[SK]test ./rc5.d/[SK]test Und das klappt natuerlich nicht. Ausserdem ist ein symlink immer relativ zum Ort wo der symlink _ist_, d.h. in diesem Fall wuerden die symlinks auf die (nicht vorhandene) Datei rc[235].d/my_boot.local zeigen. Ausserdem fehlt die 2stellige Zahl hinter S bzw. K.
das Problem liegt wohl am Ausdruck rc[235].d und nicht bei der doppelten Verwendung der Erweiterung denn:
for i in /etc/int.d/rc[235].d; do ln -s ./my_boot.local \ /etc/init.d/rc$i/[SK]99test; done
geht auch nicht :( und ohne den Ausdruck (nur [SK]) geht es.
s.o. Hier ist obendrein falsch, dass wg. dem K99 das script als allerletztes ausgefuehrt werden sollte, was schiefgeht. Korrekt waere also folgendes (diesmal unabhaengig davon, wo man sich befindet, also z.B. in /root): ==== for dir in /etc/init.d/rc[235].d do ln -s ../my_boot.local "${dir}/S99my_boot.local" ln -s ../my_boot.local "${dir}/K01my_boot.local" done ==== Merke: das Ziel des symlinks ist relativ zu /etc/init.d/rc[235].d/ d.h. und /etc/init.d/ ist relativ dazu eben '..'. Alternativ kann man natuerlich auch den absoluten Pfad '/etc/init.d/' statt dem '../' angeben. Obendrein, wie schon von anderen bemerkt, macht das inzwischen ja SuSEConfig, siehe /etc/init.d/README, und 'man insserv'. -dnh -- Ich bin mir nicht sicher, ob ich in einem Land leben möchte, in dem es Toilettenpapier gibt, das "Danke" heißt. -- Dieter Nuhr
Hy, Am 02/04/07@01:36 schrieb David Haller:
Hallo,
On Sat, 06 Apr 2002, Maik Holtkamp wrote:
Wieso geht das nicht:
ln -s ./my_boot.local ./rc[235].d/[SK]test
Weil die [] von der bash expandiert werden -- falls es solche Dateien gibt! ln bekommt also zu sehen:
Ja, genau das war es. Es muss die Dateien geben damit die shell expandieren kann. root@syl:/etc/init.d $ touch test root@syl:/etc/init.d $ ln -s ./test ./rc1.d/[SK]test root@syl:/etc/init.d $ ls -l rc1.d ... lrwxrwxrwx 1 root root 6 Apr 7 10:08 [SK]test -> ./test [Vergessen Ziffern und man insserv] Ich weiss, war nur ein test um eine möglichst kurze Antwort auf die orginal Frage zu finden, danke. -- :wq-y Maik
participants (8)
-
B.Brodesser@t-online.de
-
Bertram Scharpf
-
David Haller
-
Jörg Lippmann
-
Maik Holtkamp
-
Manfred Tremmel
-
Peter Wiersig
-
Thomas Foecking