Hi,
ich schlage mich hier momentan mit einem init-skript rum und habe eine Verständnisfrage.
Es geht um das skript /etc/init.d/boot.localfs.
OS is SLES 11 SP2 64bit. Zum Verständnis habe ich eine Menge echos in das skript eingebaut.
Hier mal die entsprechenden Schnipsel:
###############################
list_missed ()
{
local dev line
local mount_opts="-t $nofs,nonone -O no_netdev"
echo -e "\nfunction list_missed, line 87, mount_opts= $mount_opts"
echo -e "\nZeile 89: Jetzt wird gemounted: \n"
...
}
##################################
##################################
wait_for_udev ()
{
local dev
local -i timeout=1200
local missing=$(list_missed)
echo -e "\nfunction wait_for_udev, Zeile 114, missing: $missing"
test -n "$missing" || return 0
echo -e 'Waiting for $missing (Zeile 118)'
echo -e "\n"
echo -n "Waiting for $missing "
while test $timeout -gt 0 ; do
usleep 25000
...
}
##################################
und
##################################
case "$1" in
start)
...
wait_for_udev
...
##################################
Die entsprechende Ausgabe in /var/log/boot.msg sieht dann wie folgt aus:
##################################
boot.localfs start
function wait_for_udev, Zeile 114, missing:
function list_missed, line 87, mount_opts= -t nonfs,nonfs4,nosmbfs,nocifs,noafs,noncpfs,nosysfs,noproc,nocgroup,nocpuset,nodevtmpfs,nodebugfs,nosecurityfs,no
devpts,nopstore,nonone -O no_netdev
Zeile 89: Jetzt wird gemounted:
Zeile 89: line: /dev/vg_1/lv_1 on /virtuelle_maschinen type ext3 (rw,acl,user_xattr)
Zeile 92: dev: /dev/vg_1/lv_1
Zeile 92: line: /dev/vg_1/lv_1 on /virtuelle_maschinen type ext3 (rw,acl,user_xattr)
...
###################################
Ich versteh das folgendermaßen:
Da die Maschine bootet, wird das Skript mit "start" aufgerufen. Da wird relativ früh die Funktion wait_for_udev aufgerufen.
Dort kommt die Zeile "local missing=$(list_missed)". Ich versteh das so, daß die Funktion list_missed aufgerufen wird und per Kommandosubstitution das was list_missed rausschmeisst in der lokalen Variablen missing abgespeichert wird. In list_missed wird in der 3. Zeile
"echo -e "\nfunction list_missed, line 87, mount_opts= $mount_opts"" ein Text und der Inhalt der Variablen mount_ops ausgegeben. Anschließend wird eine weitere Zeile Text ausgegeben.
Die Funktion list_missed wird komplett abgearbeitet, anschließend wird zurück zu wait_for_udev gesprungen und dann die Zeile
"echo -e "\nfunction wait_for_udev, Zeile 114, missing: $missing"" ausgegeben.
Wenn ich mir jetzt aber /var/log/boot.msg ansehe, entspricht der Output nicht meinem erwartetem Ablauf.
list_missed wird IMHO VOR der Zeile "echo -e "\nfunction wait_for_udev, Zeile 114, missing: $missing"" aufgerufen.
Also müssten die echos aus list_missed auch VOR ""\nfunction wait_for_udev, Zeile 114, missing: $missing"" ausgegeben werden.
Werden sie aber nicht. Stattdessen sieht es aus, als ob nach "local missing=$(list_missed)" weiter wait_for_udev abgearbeitet wird und erst mit einer Verzögerung list_missed abgearbeitet wird.
Any ideas ?
Bernd
--
Bernd Lentes
Systemadministration
Institut für Entwicklungsgenetik
Gebäude 35.34 - Raum 208
HelmholtzZentrum münchen
bernd.lentes@helmholtz-muenchen.de
phone: +49 89 3187 1241
fax: +49 89 3187 2294
http://www.helmholtz-muenchen.de/idg
Wer nichts verdient außer Geld verdient nichts außer Geld
Helmholtz Zentrum München
Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH)
Ingolstädter Landstr. 1
85764 Neuherberg
www.helmholtz-muenchen.de
Aufsichtsratsvorsitzende: MinDir´in Bärbel Brumme-Bothe
Geschäftsführer: Prof. Dr. Günther Wess Dr. Nikolaus Blum Dr. Alfons Enhsen
Registergericht: Amtsgericht München HRB 6466
USt-IdNr: DE 129521671
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+unsubscribe@opensuse.org
Um den Listen Administrator zu erreichen, schicken
Sie eine Mail an: opensuse-de+owner@opensuse.org