• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Startscript reihenfolge

Hallo,

wie kann ich die Reihenfolge von Startscripten beeinflussen.

Habe eine Mountscript verfasst, welches aber genau vor dem DHCP-Request kommt. Somit geht das Ding ins Leere

Danke
 

regexer

Advanced Hacker
Rückfrage: Welche Technik verwendest du denn?

Falls du die init.d-Logik verwendest: Das wird nach Namen sortiert abgearbeitet. Deswegen werden die Standard-Scripte (bzw. die Links zu denselben) ziemlich weit vorne im Namen durchnummeriert. Zum Beispiel:
S07portmap
...
S08nfs
...
S10nscd
...
 

Tooltime

Advanced Hacker
notoxp schrieb:
Rückfrage: Welche Technik verwendest du denn?

Falls du die init.d-Logik verwendest: Das wird nach Namen sortiert abgearbeitet. Deswegen werden die Standard-Scripte (bzw. die Links zu denselben) ziemlich weit vorne im Namen durchnummeriert. Zum Beispiel:
S07portmap
...
S08nfs
...
S10nscd
...
Würde ich mal als komplett falsch bezeichnen.

Der INITIT INFO-Block
/usr/share/doc/manual/opensuse-manual_de/manual/sec.boot.init.html
# Required-Start: nfs
 
OP
K

kochanowski

Member
Er zieht sich immer S01

Ich habe nun herausgefunden, dass man die Reihenfolge mit den Schaltern

Required-Start:

beeinflussen kann. Hier greift es jedoch nicht???

so ist das Script aufgebaut

#!/bin/sh
#Script zum feststellen/mounten des /home Pfades vom zur Verfügung stehendem Server.
#Stand: 22.07.2008
#Autor xxxxx
# Provides : nfscocomount
# Required-Start: $portmap
# Required-Stop: $portmap
# Default-Start 3 5
# Default-Stop 0 1 2 6
# Description: Script zum Mounten des verfuegbaren NFSD-Exportes
### END INIT INFO
TIMESTAMP=$(date +"%d.%m.%Y - %H:%M")
SERVER="192.168.13.51"
SERVER2="192.168.13.82"

case "$1" in
start)
#Prüfen ob der Master-Server erreichbar ist...
if ping -c 1 $SERVER >> /dev/null 2>&1;
# wenn ja = soll das /home vom Server auf das /home vom Client exportiert werden.
then
mount -t nfs $SERVER:/home /home; echo "***** Der Master-NFS-Server ist erreichbar und wird bedient *****.";
# wennn der Master down ist, so soll sich das /home vom NFSD-Slave gezogen werden.

else
mount -t nfs $SERVER2:/home /home; echo "***** Der NFS-Slave ist erreichbar und wird bedient *****"
fi
;;
stop)
umount /home; echo "***** Die NFS-Shares werden geloest *****"

esac

exit 0




Es wird mit insserv -d nfscocomount den angegebenen Default RL zugewiesen.

jedoch immer nur S01



HILFE


Habe auch schon verschiende Rechner probiert
 

Tooltime

Advanced Hacker
Ganz spontan vermisse ich eine Schlüsselzeile:
### BEGIN INIT INFO

/etc/init.d/skeleton ist eine allgemeine Vorlage und beschreibt einige Optionen.
 

regexer

Advanced Hacker
Tooltime schrieb:
notoxp schrieb:
Das wird nach Namen sortiert abgearbeitet.
Würde ich mal als komplett falsch bezeichnen.

... ich ging jetzt von man init.d aus, welches sagt:
To control the order of service starts and stops, the start and stop links include a number in their link name.

Als ich das letzte bei diesen Links herumgeändert habe, war das auch noch so (ist allerdings schon ein bisschen her).
 

Tooltime

Advanced Hacker
@notoxp
Ok habe mir deinen Text vielleicht nicht genau genug durchgelesen, ich bitte um entschuldigung! Habe das beim Überfliegen so verstanden, das ein Script das mit den Buchstaben a beginnt automatisch mit S01a.. den ersten Startplatz bekommt. Mir hat der Hinweis auf den "INITIT INFO-Block" gefehlt, den die Startnummern werden beim aktivieren eines Diente komplett für alle Dienste neu vergeben, wobei die Reihenfolge entsprechend der INFO-Blöcke ermittelt wird. Würde mich nicht wundern, wenn bei diesem Automatismus manuelle erzeugte Links einfach gelöscht werden. Jedenfalls hätte ich mich besser nur auf die Beschreibung der INFO-Blöcke beschränken sollen. Hoffentlich passiert mir so Mist nicht noch einmal.
 
Nachdem Should-Start bzw. Require-Start ge"andert wurde, sollte man `insserv` ausf"uhren, um die Links zu updaten.
 
OP
K

kochanowski

Member
Hallo.

alles probiert. Auch insserv neu ausgeführt

Er nimmt sich für das Script immer @S01

somit ist es immer mit das 1. was losgeht. Genau vor dem Punkt, an dem network kommt. Somit ist das Netz unreachable;-(

Hier nochmals das Script in aktueller Form

### BEGINN INIT INFO
# Provides : nfscocomount
# Required-Start: $network
# Required-Stop: $network
# Should-Start: ypbind
# Should-Stop:
# Default-Start 3 5
# Default-Stop 0 1 2 6
# Short-Description: Script zum Mounten des verfuegbaren NFSD-Exportes
### END INIT INFO
TIMESTAMP=$(date +"%d.%m.%Y - %H:%M")
SERVER="192.168.13.51"
SERVER2="192.168.13.82"

case "$1" in
start)
#Prüfen ob der Master-Server erreichbar ist...
if ping -c 1 $SERVER >> /dev/null 2>&1;
# wenn ja = soll das /home vom Server auf das /home vom Client exportiert werden.
then
mount -t nfs $SERVER:/home /home; echo "***** Der Master-NFS-Server ist erreichbar und wird bedient *****.";
# wennn der Master down ist, so soll sich das /home vom NFSD-Slave gezogen werden.

else
mount -t nfs $SERVER2:/home /home; echo "***** Der NFS-Slave ist erreichbar und wird bedient *****"
fi
;;
stop)
umount /home; echo "***** Die NFS-Shares werden geloest *****"

esac

exit 0
 

Tooltime

Advanced Hacker
Naja da Fehlen hinter "Default-Start" und "Default-Stop" noch die Doppelpunkte, habe ich beim ersten Durchsehen nicht gemerkt. Also drehe ich mal den Spieß um, beweise mir mal das folgendes nicht funktioniert (kleiner Scherz):
Code:
#! /bin/sh
#
### BEGIN INIT INFO
# Provides: nfscocomount
# Required-Start: $network $portmap
# Should-Start: ypbind
# Required-Stop:
# Default-Start:  3 5
# Default-Stop:   0 1 2 6
# Short-Description: Testen Runlevel-Scripte
# Description:    Testen Runlevel-Scripte
### END INIT INFO

TIMESTAMP=$(date +"%d.%m.%Y - %H:%M")
SERVER="192.168.13.51"
SERVER2="192.168.13.82"
PS: Die Variante habe ich wirklich getestet.
 
Oben