Prozess verschwindet sang- und klanglos

24/01/2011 - 22:19 von Hans Müller | Report spam
Hallo,

doit.sh:
ich habe hier ein Shellscript, das in etwa so aussieht:
for (( i=0; i < 5; ++i ))
do
(
ssh remoteserver Machwas
echo "Machwas $i ist gelaufen"
) &
pid="$pid $!"
done
wait $pid
echo "Bin ganz fertig"
rm Flagdatei


Vom cron gerufenes Skrip:

.
.
.
doit.sh > logdatei 2>&1
mail -s log -a logdatei hein@weissnichwohin.de



Im log sehe ich dann
Machwas 0 ist gelaufen
Machwas 1 ist gelaufen
Machw

Es reißt mittendrin ab, die letzte Meldung (Bin ganz fertig) kommt nicht,
aber die Flagdatei wurde gelöscht.
In /var/log/messages wurde kein Abbruch wegen Speichermangel gelogt.
Meistens funktioniert alles rebungslos - nur manchmal scheint doit.sh abzubrechen.
Was ist da los ?
Bin ratlos.


Gruß
Hans
 

Lesen sie die antworten

#1 Jan Kandziora
24/01/2011 - 23:33 | Warnen spam
Hans Müller wrote:
Meistens funktioniert alles rebungslos - nur manchmal scheint doit.sh
abzubrechen. Was ist da los ?



Irgendwas mit der Pufferung der Ausgabe. Du produzierst in Subshells
unregelmàßig Ausgaben, die die Haupt-Shell jeweils erst zusammensetzen muss.
Und dabei gibt es wohl eine Race-Condition mit "wait", so dass die Haupt-
Shell sich beendet bevor alle Daten aus den Subprozessen gelesen sind.
Probier mal, ob du das Problem mit ksh oder zsh ebenso hast.

Mit freundlichem Gruß

Jan

Ähnliche fragen