Script Prioritäten setzen wie?

Shell Programmierung

Script Prioritäten setzen wie?

Beitragvon Nice&Gently » Mi Jan 27 21:14:45 GMT 2010

Um den Inhalt einer Ramdisk beim beenden od. neustarten auf Festplatte zu kopieren habe ich mir ein kl. Script geschrieben, was ich mit Hilfe von chkconfig für runlevel 0 und 6 aktiviert habe. Leider wird das Script nicht nicht immer beim Neustart od. Beenden ausgefürt. Ich vermute mal das in diesem Fall, das killall-script ausgeführt wird bevor mein Script ausgeführt wird.
Also wie kann ich sicherstellen das 'killall' erst ausgeführt wird wenn mein Script beendet ist?
Mein Script, 'copy-tmpfs-to-rocks':
Code: Alles auswählen
[root@Mother rave]# cat /etc/rc.d/init.d/copy-tmpfs-to-rocks
#! /bin/bash

# chkconfig: 06 00 20
# copy ramdisk to rocks \
# eigenes script

cp -r -n /var/lib/dkms /Rocks
cp -r -n /var/cache/yum /Rocks

case "$1" in
   *start)
   ;;
   *)
   echo $"Usage: $0 {start}"
   exit 1
   ;;
esac

Mit '00' aus
# chkconfig: 06 00 20
habe ich dem Script die gleiche Start-Priorität wie dem killall-script gegeben. '20' bezeichnet die Stop-Priorität, die ich einfach mal frei gewählt habe.
Dem killall-script eine niedrigere Priorität geben möchte ich nicht, da dies vermutlich nach einem Update wieder zurück gesetzt wird, und auch sonst Komplikationen geben könnte.
Ich bin mir allerdings auch nicht sicher ob ich die Thematik richtig verstanden habe.
Vll. gibt es ja noch ne' andere Lösung das mein Script gegenüber 'killall' bevorzugt ausgeführt wird.
Gruß aus Berlin

Wolfgang

Asus P5Q Deluxe, Intel Core2Quad 2,66 MHZ, 8 GB RAM, OCZ 90 GB Agility 2 SSD, Zotac GT220 Zone 1GB, Dawicontrol DC-7510 RAID mit 2 TB Hard-Disks an Raid 10, Technisat DVB-T, Satelco DVB-C

Fc12 kernel-2.6.32
Fc14 kernel-2.6.35
Benutzeravatar
Nice&Gently
Member
 
Beiträge: 539
Registriert: So Mai 25 17:52:48 GMT 2008
Wohnort: Berlin, old Europe
Version: Fedora 12

Re: Script Prioritäten setzen wie?

Beitragvon Matjes » Do Apr 8 17:36:48 GMT 2010

Hallöchen!

Also es ist wie folgt bei den Run-Levels...
Bei Betreten und Verlassen eines Run-Levels werden die entsprechenden Verzeichnisse aus /etc nach dem Alphabet sortiert ausgelesen.
rc0.d ... rc6.d für runlevel 0...6

Darin liegen meist nur Links mit folgendem Namensschema:
S00Dienstname für Startskripte wobei 00 alle Zahlen von 00 bis 99 annehmen kann... 00 wird zuerst gestartet und 99 zuletzt
K00Dienstname für Killskripte wobei 00 alle Zahlen von 00 bis 99 annehmen kann... 00 wird zuerst gestartet und 99 zuletzt

Beim Aufruf der Skripte wird auch immer als Parameter start oder stop mitgegeben... somit kann ein Skript für beide Aufgaben entwickelt werden.
Beim Wechsel eines Runlevels werden erst die Killskripte und dann die Startskripte ausgeführt.

Ich würde dein Skript wie folgt anpassen...
Code: Alles auswählen
#! /bin/bash

# chkconfig: 2345 99 00
# copy ramdisk to rocks \
# eigenes script

case "$1" in
   *start)
   echo "Hier bitte die Befehle zum wiederherstellen wenn gewünscht eintragen!"
   exit 0
   ;;
   *stop)
   cp -r -n /var/lib/dkms /Rocks
   cp -r -n /var/cache/yum /Rocks
   exit 0
   ;;
   *)
   echo $"Usage: $0 {start}"
   exit 1
   ;;
esac


Damit würde dein Skript als Erstes bei Herunterfahren / Reboot aufgerufen und als Letztes beim Hochfahren.
Bild
Benutzeravatar
Matjes
Member
 
Beiträge: 271
Registriert: Sa Jul 7 19:09:39 GMT 2007

Re: Script Prioritäten setzen wie?

Beitragvon Nice&Gently » So Apr 18 20:40:06 GMT 2010

Jeep, das war es.
Danke für den Hinweiß.
Gruß aus Berlin

Wolfgang

Asus P5Q Deluxe, Intel Core2Quad 2,66 MHZ, 8 GB RAM, OCZ 90 GB Agility 2 SSD, Zotac GT220 Zone 1GB, Dawicontrol DC-7510 RAID mit 2 TB Hard-Disks an Raid 10, Technisat DVB-T, Satelco DVB-C

Fc12 kernel-2.6.32
Fc14 kernel-2.6.35
Benutzeravatar
Nice&Gently
Member
 
Beiträge: 539
Registriert: So Mai 25 17:52:48 GMT 2008
Wohnort: Berlin, old Europe
Version: Fedora 12


Zurück zu Shell-Skripte

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast