shellscript bei shutdown
shellscript bei shutdown
Hallo Leute!
Gibt es eine Möglichkeit ein Shellscript o.Ä. bei einem Shutdown auszuführen?
Greets balu
Gibt es eine Möglichkeit ein Shellscript o.Ä. bei einem Shutdown auszuführen?
Greets balu
sry, ich hab mich wahrscheinlich zu kurz ausgedrückt, bin davon ausgegangen das
du debian kennst. aber das ist kein problem, ich erklärs dir:
unter debian werden dateien, die automatisch ausgeführt werden sollen, in die
ordner /etc/rcX.d verlinkt. X ist eine variable, welche für das runlevel steht.
du könntest z.b. in /etc/init.d ein skript mit dem namen "do_at_shutdown"
anlegen, welches du mit
in das runlevel verzeichnis verlinkst.
Das "K" vor dem namen steht für "KILL", das heisst dieses skript wird ausgeführt wenn der pc den runlevel verlässt, den du gewählt hast. hast du das skript in den ordner /etc/rc1.d verlinkt, wird das skript beim verlassen dieses runlevels ausgeführt.
da es ein "K" skript ist, wird ihm ein parameter übergeben, nämlich "stop".
würde das skript mit dem buchstaben "S" beginnen, wäre es ein start skript, es würde dann beim pc-start aufgerufen. die nummer hinter dem "K" ist die reihenfolge, in der die skripte aufgerufen werden, das ist für uns aber nicht wichtig.
jetz kommt das wichtige:
das skript muss nun abfragen, mit welchem parameter es aufgerufen wurde.
du machst das so:
du kannst das ganze prinzip unter http://www.tuxhausen.de/kurs_init.html nachlesen, das verstehst du vielleicht besser als meine erklärungen aus dem kopf
mfg
mauser
du debian kennst. aber das ist kein problem, ich erklärs dir:
unter debian werden dateien, die automatisch ausgeführt werden sollen, in die
ordner /etc/rcX.d verlinkt. X ist eine variable, welche für das runlevel steht.
du könntest z.b. in /etc/init.d ein skript mit dem namen "do_at_shutdown"
anlegen, welches du mit
Code: Alles auswählen
ln -s /etc/init.d/do_at_shutdown /etc/rc1.d/K99do_at_shutdown
Das "K" vor dem namen steht für "KILL", das heisst dieses skript wird ausgeführt wenn der pc den runlevel verlässt, den du gewählt hast. hast du das skript in den ordner /etc/rc1.d verlinkt, wird das skript beim verlassen dieses runlevels ausgeführt.
da es ein "K" skript ist, wird ihm ein parameter übergeben, nämlich "stop".
würde das skript mit dem buchstaben "S" beginnen, wäre es ein start skript, es würde dann beim pc-start aufgerufen. die nummer hinter dem "K" ist die reihenfolge, in der die skripte aufgerufen werden, das ist für uns aber nicht wichtig.
jetz kommt das wichtige:
das skript muss nun abfragen, mit welchem parameter es aufgerufen wurde.
du machst das so:
Code: Alles auswählen
#!/bin/sh
if [ $1 == "stop" ]; then
hier_skript_hinschreiben
fi

mfg
mauser
da will ich mich doch gleich mal anhängen,
geht das auch mit einem soundfile?
ich habe da nämlich ein cooles (Frauenstimme "mission shutdown sequence"),
von der kanotix cd geklaut,
kann man das irgendwie so hinbiegen das es vorm runterfahren bzw. reboot abgespielt wird?
ich nutze startx + fluxbox, also mission startet sequence geht durch die .xsession im home beim start (wäre auch cool wenn das schon im runlevel 2 abgespielt wird), aber wie mach ich das beim runterfahren bzw. reboot?
mfg
schlingel
geht das auch mit einem soundfile?
ich habe da nämlich ein cooles (Frauenstimme "mission shutdown sequence"),
von der kanotix cd geklaut,
kann man das irgendwie so hinbiegen das es vorm runterfahren bzw. reboot abgespielt wird?
ich nutze startx + fluxbox, also mission startet sequence geht durch die .xsession im home beim start (wäre auch cool wenn das schon im runlevel 2 abgespielt wird), aber wie mach ich das beim runterfahren bzw. reboot?
mfg
schlingel
Kernel/OS Linux 2.6.31.5-s64 [ Debian sid ]
CPU Info AMD Athlon 64 X2 Dual Core 6000+
Memory 2027.1MB
XFX GeForce 9600 GT
CPU Info AMD Athlon 64 X2 Dual Core 6000+
Memory 2027.1MB
XFX GeForce 9600 GT
-
- Beiträge: 533
- Registriert: 27.07.2004 10:13:23
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Otterbach/Pfalz
nicht runlevel 0?
Hallo,
sei es nun zu meiner eigenen Erleuchtung, oder der allgemeinen:
erschtens, muß der Link nicht in /etc/rc0.d angelegt werden, damit das script beim Shutdown ausgeführt wird?
Zwootens, ich erinnere mich, daß man das Script update-rcd (oder so) verwenden soll um am Start/Stopvorgang rumzuspielen. Ich kann das heute Abend mal nachlesen. (Der Chef gönnt mir kein Linux).
sei es nun zu meiner eigenen Erleuchtung, oder der allgemeinen:
erschtens, muß der Link nicht in /etc/rc0.d angelegt werden, damit das script beim Shutdown ausgeführt wird?
Zwootens, ich erinnere mich, daß man das Script update-rcd (oder so) verwenden soll um am Start/Stopvorgang rumzuspielen. Ich kann das heute Abend mal nachlesen. (Der Chef gönnt mir kein Linux).
---------------------------------------------------
Nothing is foolproof to a sufficiently talented fool
Nothing is foolproof to a sufficiently talented fool
hi kelpin,
ich glaube nicht, das es einen unterschied zwischen dem runlevel 0 und 1 gibt hinsichtlich des effektes in diesem fall. ausserdem sind alle skripte aus 0 auch in 1 (oder andersrum..)
runlevel 1 wird ja eigentlich immer durchlaufen, genau wie 0 , oder ?? zumdinest funktioniert es so
das update skript bringt dir nur was, wenn du ein debian paket verwenden willst. hier wurde aber nach einem shellskript gefragt,darum vermute ich das kein debian paket dafür vorhanden ist. das skript dient auch mehr zum managment bestehener sachen, z.b. ob samba nun gestartet werden soll oder nicht. hintergrunde ist, das man sonst probleme bei den updates bekommt.
mfg
mauser
ich glaube nicht, das es einen unterschied zwischen dem runlevel 0 und 1 gibt hinsichtlich des effektes in diesem fall. ausserdem sind alle skripte aus 0 auch in 1 (oder andersrum..)
runlevel 1 wird ja eigentlich immer durchlaufen, genau wie 0 , oder ?? zumdinest funktioniert es so

das update skript bringt dir nur was, wenn du ein debian paket verwenden willst. hier wurde aber nach einem shellskript gefragt,darum vermute ich das kein debian paket dafür vorhanden ist. das skript dient auch mehr zum managment bestehener sachen, z.b. ob samba nun gestartet werden soll oder nicht. hintergrunde ist, das man sonst probleme bei den updates bekommt.
mfg
mauser
- Snoopy
- Beiträge: 4297
- Registriert: 17.11.2003 18:26:56
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Rh.- Pflz.
Hi
Meines Wissens sind die Runlevel folgendermassen unterteilt
[Edit]
Siehe auch [1]
[1] http://de.wikipedia.org/wiki/Runlevel
[/edit]
Meines Wissens sind die Runlevel folgendermassen unterteilt
Code: Alles auswählen
0
System anhalten
Code: Alles auswählen
1 Single User Mode
Nur ein Benutzer kann arbeiten, meistens root. Es sollten nur die wichtigsten Dienste gestartet sein
Code: Alles auswählen
2 Mulituser, no network
Es können mehrere Benutzer arbeiten, ohne Netzwerk-Exports (NFS) (multiuser with no network services exported)
Code: Alles auswählen
3 Normal, Multiuser
Normaler Modus
Code: Alles auswählen
4 Reserviert
normale Benutzung, Multiuser
Code: Alles auswählen
5 Multiuser mit X-Anmeldung
Es erscheint der X-Server zur Benutzer-Anmeldung
Code: Alles auswählen
6 Reboot
Rechner wird neugestartet
Siehe auch [1]
[1] http://de.wikipedia.org/wiki/Runlevel
[/edit]
- Savar
- Beiträge: 7174
- Registriert: 30.07.2004 09:28:58
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Berlin
jap.. installiere dir mal GDM und schaue per in welchem du bist.. ist immer 2...
(auch sind die Symlinks in 2-5 alle die gleichen)..
Code: Alles auswählen
runlevel

hi,
sry, hab mich falsch ausgedrückt :-/ ich hatte jetzt eher an das resultat gedacht. also warum es besser ist, das skript in 0 zu packen.ist mir aber auch grad klargeworden..
also sollte man es wohl in 0 und 6, und evtl. noch in 1 packen wenn es im single user modus auch gestartet werden soll..
mfg
mauser
sry, hab mich falsch ausgedrückt :-/ ich hatte jetzt eher an das resultat gedacht. also warum es besser ist, das skript in 0 zu packen.ist mir aber auch grad klargeworden..
also sollte man es wohl in 0 und 6, und evtl. noch in 1 packen wenn es im single user modus auch gestartet werden soll..
mfg
mauser
- Snoopy
- Beiträge: 4297
- Registriert: 17.11.2003 18:26:56
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Rh.- Pflz.
Ah jetzt ja...wo Du es jetzt sagst *ggg
Wieder was gelernt...fein fein.
Habe die Runlevel nie beachtet im Debian...brauche ( im Moment ) sowas net
Also für das Protokoll
Ist das nun so korrekt ?
Code: Alles auswählen
miraculix:~# runlevel
N 2
miraculix:~#
Habe die Runlevel nie beachtet im Debian...brauche ( im Moment ) sowas net

Also für das Protokoll
Code: Alles auswählen
Runlevel 0:
Shutdown. Alle Netzverbindungen werden geschlossen, Dateipuffer werden geschrieben, Partitionen umounted
Code: Alles auswählen
Runlevel 1:
Einzelnutzerbetrieb ohne Netzwerk mit ausschließlich lokalen Ressourcen.
Code: Alles auswählen
Runlevel 2-5:
Lokaler Mehrnutzerbetrieb mit Netzwerkbetrieb inkl. Firewall und die grafische Oberfläche wird bereitgestellt
Code: Alles auswählen
Runlevel 6
Reboot