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