skript nach dem booten automatisch
Hallo, ich möchte ein kleines Skript nach dem booten in Runlevel 3 (ohne grafisches System) automatisch ausführen lassen. In welches boot-skript könnte ich das noch reinschreiben ? Frank -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Sam, 05 Dez 2009, suse@jkg-neuss.de schrieb:
Hallo, ich möchte ein kleines Skript nach dem booten in Runlevel 3 (ohne grafisches System) automatisch ausführen lassen. In welches boot-skript könnte ich das noch reinschreiben ?
Schreib dir ein eigenes, less /etc/init.d/skeleton HTH, -dnh -- [Chauffeurin] > Heißt das nicht Chauffeuse? -- M. Klehn Nein, auch Friteuse heißt jetzt Friteurin und Möse Mörin. -- O. Schad -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
David Haller
Hallo,
Am Sam, 05 Dez 2009, suse@jkg-neuss.de schrieb:
Hallo, ich möchte ein kleines Skript nach dem booten in Runlevel 3 (ohne grafisches System) automatisch ausführen lassen. In welches boot-skript könnte ich das noch reinschreiben ?
Schreib dir ein eigenes,
less /etc/init.d/skeleton
wie stelle ich sicher, dass das wirklich ganz zum Schluss ausgeführt wird ?
HTH, -dnh
-- [Chauffeurin] > Heißt das nicht Chauffeuse? -- M. Klehn Nein, auch Friteuse heißt jetzt Friteurin und Möse Mörin. -- O. Schad -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, ich glaube es reicht, wenn du hier in die Liste postest - David braucht deine Mail nicht zwei Mal ;-) Am 05.12.2009 um 17:21 Uhr schrieb suse@jkg-neuss.de:
wie stelle ich sicher, dass das wirklich ganz zum Schluss ausgeführt wird ?
Die Start-Scripts beginnen mit S gefolgt von einer Zahl. Diese Scripts werden nach ihrer numerischen und dann alphabetischen Folge abgearbeitet. Das letzte (oder die letzten) Script trägt die Bezeichnung S99z ... Wenn du keine weiteren Scripten mit S99 hast, kannst du ja dies verwenden. cu Peter -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Peter Geerds
Hallo, ich glaube es reicht, wenn du hier in die Liste postest - David braucht deine Mail nicht zwei Mal ;-)
Am 05.12.2009 um 17:21 Uhr schrieb suse@jkg-neuss.de:
wie stelle ich sicher, dass das wirklich ganz zum Schluss ausgeführt wird ?
Die Start-Scripts beginnen mit S gefolgt von einer Zahl. Diese Scripts werden nach ihrer numerischen und dann alphabetischen Folge abgearbeitet. Das letzte (oder die letzten) Script trägt die Bezeichnung S99z ... Wenn du keine weiteren Scripten mit S99 hast, kannst du ja dies verwenden.
Ich habe mein Skript "alle-USB-Platten-mounten" in /etc/init.d abgelegt. Dann habe ich ln -s /etc/init.d/alle-USB-Platten-mounten /etc/init.d/rc3.d/S13alle-USB-Platten-mounten angelegt. Also ein Symlink in den Ordner /etc/init.d/rc3.d wobei es vorher als "höchste" Zahl das Symlink S12xinetd gab. Also müsste doch S13alle-USB-Platten-mounten danach ausgeführt werden oder ? Macht es aber nicht :-( Frank
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
suse@jkg-neuss.de schrieb: legt. Also ein Symlink in den Ordner /etc/init.d/rc3.d
wobei es vorher als "höchste" Zahl das Symlink S12xinetd gab. Also müsste doch S13alle-USB-Platten-mounten danach ausgeführt werden oder ? Macht es aber nicht :-(
Frank
In c't 25 S184ff wird auf diese Init-Skripte eingegangen. Mein Tipp, kopiere dir ein möglichst einfaches Script aus /etc/init.d und modifiziere es nach deinen Bedürfnissen. und bei # Required-Start: trägst du $all ein, das erzwingt den Start automatisch nach allen anderen. Als letztes rufst du insserv "dernamedeinerdatei" auf, das erstellt dann die erforderlichen Symlinks Manfred -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Sat, 5 Dec 2009 18:08:51 +0100, you wrote:
Wenn du keine weiteren Scripten mit S99 hast, kannst du ja dies verwenden.
Es hat sich keiner von Euch /etc/init.d/skeleton angesehen, sonst wüsstest Du, dass das auf einem openSUSE System grober Unfug ist! Hier wird die Reihenfolge dynamisch aus den Abhängigkeiten errechnet und entsprechende Symlinks erstellt, wofür insserv zuständig ist. Wenn da jetzt manuell Symlinks erzeugt werden, sind die nach dem nächsten Aufruf von insserv, z.B. nach dem (de)installieren eines Paketes mit Initskripten, garantiert falsch! Im LSB-Konformen Kopf eines Initskriptes (siehe /etc/init.d/skeleton) gibt es für die Abhängikkeiten Required-Start bzw. Required-Stop und die entsprechenden Platzhalter für Dienste wie $remote-fs, $time etc. Ausserdem gibt es $ALL. Aus besagtem skeleton: # $ALL indicates that a script should be # inserted at the end. Also sollte Frank in seinem Initskript unter Required-Start $ALL eintragen, dann wird das Skript auf nach allen anderen gestartet. Den Runlevel, in dem das Skript starten soll wird ebenfalls im Kopf des Skriptes angegeben. Wie gesagt, einfach mal wie auch schon von David geschrieben, /etc/init.d/skeleton lesen. Philipp -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Im LSB-Konformen Kopf eines Initskriptes (siehe /etc/init.d/skeleton) gibt es für die Abhängikkeiten Required-Start bzw. Required-Stop und die entsprechenden Platzhalter für Dienste wie $remote-fs, $time etc. Ausserdem gibt es $ALL. Aus besagtem skeleton:
# $ALL indicates that a script should be # inserted at the end.
Also sollte Frank in seinem Initskript unter Required-Start $ALL eintragen, dann wird das Skript auf nach allen anderen gestartet. Den Runlevel, in dem das Skript starten soll wird ebenfalls im Kopf des Skriptes angegeben.
wie würde die Zeile lauten ? Wie gesagt, einfach mal wie auch schon von David
geschrieben, /etc/init.d/skeleton lesen.
Philipp -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
> wie würde die Zeile lauten ? > > > Wie gesagt, einfach mal wie auch schon von David > > > geschrieben, /etc/init.d/skeleton lesen. Lest doch bitte, was schon geschrieben wurde. Bei mir in der skeleton ab Zeile 36. Genauer gehts wirklich nicht. Einfach Datei kopieren, alles einkommentieren und anpassen, was auf dich zutrifft und fertig. Dann ist das init-Skript wenigstens standardkonform. Gruß Felix
On Sat, 5 Dec 2009 19:18:15 +0100 (CET), you wrote:
wie würde die Zeile lauten ?
Welche Zeile?
Also, Du kopierst /etc/init.d/skeleton nach
/etc/init.d/
Hallo Philipp! Am 06.12.2009 um 02:40 Uhr schrieb Philipp Thomas:
Das bedautet, das Dein Skript nach allen anderen gestartet und vor alln anderen gestopt wird.
Ich habe inzwischen ein paar Tests gemacht, damit ich diesen Mechanismus besser verstehe. In allen Startscripts habe ich die INIT INFOs erbarmungslos gelöscht. Die Folge davon war erstmal keine. SuSE startete wie gewohnt, die Scripten wurden in der gleichen Reihenfolge wie davor abgearbeitet. Dann habe ich ein neues Script angelegt und mit Required-Start zu nötigen versucht, nach einem anderen Script zu starten. Es wurde trotzdem die alphabetische Reihenfolge eingehalten. Im Runlevel-Editor in yast werden zu den bearbeiteten Scripten die entsprechenden Runlevel korrekt aufgeführt (vermutlich werden hier die rc*.d-Verzeichnisse ausgelesen).
Danach machst Du dann ein 'insserv
' und beim nächsten Start sollte in Runlevel 3 oder 5 Dein Skript gestartet werden.
insserv ist der einzige, der meckert, weil LSB nicht eingehalten wird (beim Programmaufruf und bei der Installation eines rpm). Ansonsten gibt es keine Unterschiede. Natürlich muss man in diesem Fall selber darauf achten, in welcher Reihenfolge die Scripten starten müssen. Gruß Peter der noch ein bisschen weiterspielt ;-) PS: Ganz subjektiv: Der PC startet ein bisschen schneller. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Sun, 6 Dec 2009 18:35:44 +0100, you wrote:
Ich habe inzwischen ein paar Tests gemacht, damit ich diesen Mechanismus besser verstehe. In allen Startscripts habe ich die INIT INFOs erbarmungslos gelöscht. Die Folge davon war erstmal keine. SuSE startete wie gewohnt, die Scripten wurden in der gleichen Reihenfolge wie davor abgearbeitet.
Du hast den Mechanismus offensitchtlich immer noch nicht verstanden. Warum liesst Du nicht die Manpage zu insserv? Inserv ist für das Berechnen der Reihenfolge und das Anlegen der Symlinks zuständig. Ohne eine Aufruf von Insserv nach solchen Aktionen bleibt natürlich alles beim Alten. Ruf mal nach Entfernen der INIT INFO insserv auf und schau Dir *dann* mal die Verzeichnisse unter /etc/init.d an.
insserv ist der einzige, der meckert, weil LSB nicht eingehalten wird)
Ja, weil es das einzige Programm ist, das die von LSB *geforderte* Funktionalität implementiert. Bitte lies erst mal die zur Verfügung stehende Information. Philipp -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Philipp! Am 07.12.2009 um 01:16 Uhr schrieb Philipp Thomas:
Du hast den Mechanismus offensitchtlich immer noch nicht verstanden.
Das schrieb ich ja, dass ich dabei bin es verstehen zu wollen :-)
Warum liesst Du nicht die Manpage zu insserv? Inserv ist für das Berechnen der Reihenfolge und das Anlegen der Symlinks zuständig. Ohne eine Aufruf von Insserv nach solchen Aktionen bleibt natürlich alles beim Alten. Ruf mal nach Entfernen der INIT INFO insserv auf und schau Dir *dann* mal die Verzeichnisse unter /etc/init.d an.
Also, ich probiere unter openSUSE 11.2 damit herum. Der Aufruf von insserv bringt nur die schon erwähnten Fehlermeldungen. Das Verzeichnis /etc/init.d wird nicht verändert. cu Peter -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo! Noch zur Ergänzung, weil ich deine nächste Frage diesbezüglich vermute: Am 07.12.2009 um 06:13 Uhr schrieb Peter Geerds:
Am 07.12.2009 um 01:16 Uhr schrieb Philipp Thomas:
Warum liesst Du nicht die Manpage zu insserv? Inserv ist für das Berechnen der Reihenfolge und das Anlegen der Symlinks zuständig. Ohne eine Aufruf von Insserv nach solchen Aktionen bleibt natürlich alles beim Alten. Ruf mal nach Entfernen der INIT INFO insserv auf und schau Dir *dann* mal die Verzeichnisse unter /etc/init.d an.
Also, ich probiere unter openSUSE 11.2 damit herum. Der Aufruf von insserv bringt nur die schon erwähnten Fehlermeldungen. Das Verzeichnis /etc/init.d wird nicht verändert.
Ich habe natürlich auch diese Dateien angeschaut: .depend.boot .depend.start .depend.halt .depend.stop cu Peter -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On 07.12.2009, Peter Geerds wrote:
Also, ich probiere unter openSUSE 11.2 damit herum. Der Aufruf von insserv bringt nur die schon erwähnten Fehlermeldungen. Das Verzeichnis /etc/init.d wird nicht verändert.
Dann stimmt dein Header im entspr. bootscript nicht. Ich habe ein massiv veraendertes Bootsystem (ca. 1/3 aller Bootskripte sind irgendwie manipuliert oder umgeschrieben, und ich habe einen ganzen Haufen eigener Skripte) auf Basis einer opensuse 11.1, und alles funktioniert problemlos so, wie Philipp es beschreibt. Um direkt beim Ausfuehren etwas mehr zu sehen, kannst du auch "insserv -v" aufrufen. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Heinz! Am 07.12.2009 um 10:48 Uhr schrieb Heinz Diehl:
Dann stimmt dein Header im entspr. bootscript nicht. Ich habe ein massiv veraendertes Bootsystem (ca. 1/3 aller Bootskripte sind irgendwie manipuliert oder umgeschrieben, und ich habe einen ganzen Haufen eigener Skripte) auf Basis einer opensuse 11.1, und alles funktioniert problemlos so, wie Philipp es beschreibt.
Um direkt beim Ausfuehren etwas mehr zu sehen, kannst du auch "insserv -v" aufrufen. Klar, habe ich so gemacht. Da bekommt man ja auch die Meldungen mit .depend.* Welchen Header in welchem bootscript meinst du denn? Unabhängig davon, werde ich meine 11.2 Installation mal überprüfen, da ja ein Script mit LSB-konformen eintrag nicht entsprechend angenommen wird.
cu Peter -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo! Am 05.12.2009 um 18:45 Uhr schrieb Philipp Thomas:
Wenn da jetzt manuell Symlinks erzeugt werden, sind die nach dem nächsten Aufruf von insserv, z.B. nach dem (de)installieren eines Paketes mit Initskripten, garantiert falsch!
Große Worte - bei mir funktionierts so seit langem. Auch jetzt noch unter 11.1. Dein "garantiert" ist damit garantiert falsch ;-)
# $ALL indicates that a script should be # inserted at the end.
Und wenn mehrere das $ALL haben bei gleicher Abhängigkeit? cu Peter -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Sat, 5 Dec 2009 23:44:22 +0100, you wrote:
Große Worte - bei mir funktionierts so seit langem. Auch jetzt noch unter 11.1. Dein "garantiert" ist damit garantiert falsch ;-)
Dann hast Du einfach grosses Glück!
Und wenn mehrere das $ALL haben bei gleicher Abhängigkeit?
Ich weiss nicht was insserv macht, aber ich vermute, er gibt allen Skripten mit $ALL die gleiche Priorität (also z.B. S99...) dann werden sie von Init in alphabetischer Reihenfolge gestartet. Sollten unter diesen Skripten Abhängigkeiten bestehen, definierst Du das im Kopf: Skript 1: # Begin ### BEGIN INIT INFO # Provides: blubber ### END INIT INFO Skript 2: ### BEGIN INIT INFO # Provides: blabber # Required-Start: $ALL blubber ### END INIT INFO Und schon wird Skript 2 nach Skript 1 ausgeführt. Philipp -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (7)
-
David Haller
-
Felix Lemke
-
Heinz Diehl
-
Manfred Kreisl
-
Peter Geerds
-
Philipp Thomas
-
suse@jkg-neuss.de