Hi, ich verwende seit einigen SuSE-Versionen ein Skript (zum Nachstarten eines Java- Programms), welches via ps feststellt, ob der Prozess noch laeuft. Das hat bis zur Umstellung auf SuSE8.0 hervorragend funktioniert. Der Skript sieht so aus: -------------------------------------------------------------------------- #!/bin/bash SCRIPTDIR=/scripts VAR=`ps fax|grep "prog.jar"|wc -l|awk '{ print $1 }'` if [ $VAR -lt 2 ]; then /usr/lib/java/jre/bin/java -cp prog.jar & echo "Programm gestartet." else echo "Programm laeuft bereits." fi -------------------------------------------------------------------------- Seit der Umstellung auf SuSE8.0 habe ich feststellen muessen, dass mein Programm ab und an mehrfach gestartet wurde. Bei genauerem Hinschauen stellte sich heraus, dass das von mir verwendete ps scheinbar manchmal eine leere Prozessliste zurueckgibt, auf jeden Fall hat die Variable VAR in diesen Faellen den Wert 0. Das hat mich zur Umgehung in dieser Form hier genoetigt: -------------------------------------------------------------------------- #... VAR=0; while [ $VAR -eq 0 ]; do VAR=`ps fax|grep "prog.jar"|wc -l|awk '{ print $1 }'` if [ $VAR -eq 0 ]; then echo ======== `date`: "Bugfix hat zugeschlagen!">>$SCRIPTDIR/prog.log sleep 5 fi done #... -------------------------------------------------------------------------- Damit funktioniert es dann, aber das kann doch nicht der Sinn der Uebung sein? Wo mache ich hier was falsch? Und warum hat es vorher immer funktioniert? BTW: vorher heisst in dem Falle Kernel 2.2.16, momentan laeuft 2.4.18-4GB. mfg, Hannes