ich habe mir ein bashscript zur Aktualisierung eines Programmes geschrieben, welches bei jedem Start des Rechner ausgeführt werden soll. Dazu wird ein Script über den Runlevel 99 per Init gestart. Das gestartete Script hat dann mehrere Aufgaben, unter anderem wird auch ein weiteres Script gestartet, welches folgenden Code enthält:
#Ausgabe fuer den Updateprozess
PROGRESS=`/bin/ps -fe|grep "[o]penvasmd -p 9031 -s 9030 --update"`;
while [ "$PROGRESS" != "" ]; do
PROGRESS=`/bin/ps -fe|grep "[o]penvasmd -p 9031 -s 9030 --update"`;
sleep 1;
tmp=$tmp"+";
echo $tmp>>/tmp/log.txt;
LEN=`expr length $tmp 2>/dev/null`
if [ $? -eq 0 ]; then
if [ $LEN -eq 10 ]; then
tmp=""
sleep 1
echo "Updateprozess beschaeftigt">>/tmp/log.txt
sleep 1
echo "Bitte warten">>/tmp/log.txt
fi
fi
done;
Er schaut also im wesentlichen, ob ein bestimmtes Programm noch läuft. Wenn ich das Script per Hand ausführe, dann funktioniert auch alles. So lange der Prozess läuft erhalte ich die gewünschten Ausgaben in meine Logdatei.
Wenn das Script aber automatisch startet, dann funktioniert das nicht.
hat einer eine Idee woran es liegen kann?
Ich hatte ursprünglich eine
until ! (/bin/ps -fe|grep "[o]penvasmd -p 9031 -s 9030 --update" >/dev/null);
do
Aber das geht auch nicht.
Grüße
tavoc
EDIT:
Er spring also gar nicht in die Schleife. Ich vermute ein Problem mit ps?
Dieser Beitrag wurde von tavoc bearbeitet: 03. Juni 2011 - 18:41