shellscript bei shutdown

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
balufreak
Beiträge: 7
Registriert: 02.08.2005 14:46:53

shellscript bei shutdown

Beitrag von balufreak » 05.08.2005 23:27:21

Hallo Leute!

Gibt es eine Möglichkeit ein Shellscript o.Ä. bei einem Shutdown auszuführen?

Greets balu

Benutzeravatar
mauser
Beiträge: 1854
Registriert: 27.01.2005 22:34:48

Beitrag von mauser » 05.08.2005 23:48:16

hm die skripte in /etc/rcX.d müssen doch auch beim shutdown ausgeführt werden, man muss dann nur auf "stop" abfragen, oder net ?
mfg
mauser

balufreak
Beiträge: 7
Registriert: 02.08.2005 14:46:53

Beitrag von balufreak » 05.08.2005 23:52:53

hmm diese Datei existiert auf meinem Sarge nicht. Also kann ich doch da auch gar nichts abfragen. :(

Benutzeravatar
mauser
Beiträge: 1854
Registriert: 27.01.2005 22:34:48

Beitrag von mauser » 06.08.2005 00:28:51

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

Code: Alles auswählen

ln -s /etc/init.d/do_at_shutdown /etc/rc1.d/K99do_at_shutdown
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:

Code: Alles auswählen

#!/bin/sh
if [ $1 == "stop" ]; then 
        hier_skript_hinschreiben
fi
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

Benutzeravatar
Schlingel
Beiträge: 355
Registriert: 18.01.2004 10:23:17
Wohnort: Spandau

Beitrag von Schlingel » 06.08.2005 09:00:30

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
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

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 06.08.2005 10:02:16

mach es so wie mauser gesagt hat und nutze einfach sox zum Abspielen..
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
Schlingel
Beiträge: 355
Registriert: 18.01.2004 10:23:17
Wohnort: Spandau

Beitrag von Schlingel » 06.08.2005 10:41:35

genau, dachte mir vorhin auch grad das der link von mauser genau richtig ist.
thx
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

Kelpin
Beiträge: 533
Registriert: 27.07.2004 10:13:23
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Otterbach/Pfalz

nicht runlevel 0?

Beitrag von Kelpin » 12.08.2005 12:57:35

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).
---------------------------------------------------
Nothing is foolproof to a sufficiently talented fool

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 12.08.2005 13:15:48

1. jap es müsste in rc0.d und für Reboot in rc6.d drin liegen und
2. update-rc sollte man nutzen.. aber das macht AFAIK auch nichts anderes und ich habe es nie damit gemacht, da ich zu faul war die Syntax zu lernen.. ;-)
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
mauser
Beiträge: 1854
Registriert: 27.01.2005 22:34:48

Beitrag von mauser » 12.08.2005 13:16:14

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

Benutzeravatar
mauser
Beiträge: 1854
Registriert: 27.01.2005 22:34:48

Beitrag von mauser » 12.08.2005 13:17:02

ok,

dann mal so gefragt: wo ist der unterschied zwischen 0 und 1 ?
mfg
mauser

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 12.08.2005 13:22:09

0 ist Shutdown
1 ist Single User.. heißt alles wird gestoppt und entweder du startest weiter in den 2er oder du gibst das Rootpasswort an und kannst dann Maintenance machen (fsck usw.)
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
Snoopy
Beiträge: 4297
Registriert: 17.11.2003 18:26:56
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rh.- Pflz.

Beitrag von Snoopy » 12.08.2005 13:23:09

Hi

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
[Edit]
Siehe auch [1]

[1] http://de.wikipedia.org/wiki/Runlevel
[/edit]

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 12.08.2005 13:26:57

@Snoopy: Ja das ist normalerweise so.. aber bei Debian sind 2-5 alle das gleiche!
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
Snoopy
Beiträge: 4297
Registriert: 17.11.2003 18:26:56
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rh.- Pflz.

Beitrag von Snoopy » 12.08.2005 13:28:31

Savar hat geschrieben:@Snoopy: Ja das ist normalerweise so.. aber bei Debian sind 2-5 alle das gleiche!
Hmmm...also 2-5 sind alle komplettes System inkl. X ?

Nutze das nie...hab nur irgendwann mal gelernt...

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 12.08.2005 13:29:38

jap.. installiere dir mal GDM und schaue per

Code: Alles auswählen

runlevel
in welchem du bist.. ist immer 2... ;-) (auch sind die Symlinks in 2-5 alle die gleichen)..
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
mauser
Beiträge: 1854
Registriert: 27.01.2005 22:34:48

Beitrag von mauser » 12.08.2005 13:35:41

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

Benutzeravatar
Snoopy
Beiträge: 4297
Registriert: 17.11.2003 18:26:56
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rh.- Pflz.

Beitrag von Snoopy » 12.08.2005 13:35:45

Ah jetzt ja...wo Du es jetzt sagst *ggg

Code: Alles auswählen

miraculix:~# runlevel
N 2
miraculix:~#
Wieder was gelernt...fein fein.
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
Ist das nun so korrekt ?

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 12.08.2005 14:01:41

sehr schön :-)

wobei Einzelnutzerbetrieb schon fast etwas zu weit gegriffen ist.. du kriegst ja nichtmal nen Login.. nur Root kann sich anmelden ;-)
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

zelle
Beiträge: 15
Registriert: 14.06.2005 16:44:25

Beitrag von zelle » 19.08.2005 17:46:46

Hi,
hir ein Skript von Markus Gaugusch zum auto-shutdown.
http://gaugusch.at/ashutdown.sh

Martin

Benutzeravatar
mauser
Beiträge: 1854
Registriert: 27.01.2005 22:34:48

Beitrag von mauser » 19.08.2005 17:52:40

@zelle: es ging darum, ein shellskript während des shutdown vorgangs automatisch auszuführen, und nicht darum den shutdown an sich zu automatisieren ;-)
mfg
mauser

zelle
Beiträge: 15
Registriert: 14.06.2005 16:44:25

Beitrag von zelle » 19.08.2005 18:32:36

hi,
ups, so ist es wenn man nicht richtig liest.

Martin

Antworten