ich verwende Debian 5.0.8 Lenny auf meinem vServer.
ich will nun mit regelmäßigen Aufrufen eines Scripts testen, ob ein SCREEN-Prozess noch läuft, und falls nicht, soll das Script den SCREEN-Prozess detached neustarten.
Hier das Script (./sim):
Code: Alles auswählen
#!/bin/bash
PATH=$PATH:/bin:/usr/bin
#change from 'ps ax' to 'screen -ls'
#in the following line by Jeremy Freeman
SIMSCREEN=$(screen -ls | pgrep mono | wc -l)
cd /home/hgridsim/OpenSim/bin
if [ $SIMSCREEN = 0 ] ;
then
echo "Starting screen and OpenSim.exe (detached)"
date
sleep 2
screen -d -m -S OpenSim mono OpenSim.exe
else
if [ "$1" = "attach" ] ;
then
echo "Attaching to OpenSim.exe"
sleep 2
screen -d -r OpenSim
fi
fi
##############################
(1) Wird es aufgerufen und es läuft kein SCREEN-Prozess "OpenSim", startet das Script den SCREEN und im SCREEN den OpenSim-Server mit "mono".
(2)Wird das Script mit dem Parameter "attach" aufgerufen ("./sim attach") und SCREEN läuft, wird SCREEN in den Vordergrund geholt, und ich kann den OpenSim-Server bedienen.
Sollte SCREEN nicht laufen, wird es detached gestartet.
(3) Wird das Script ohne Parameter aufgerufen und SCREEN läuft, macht das Script gar nix.
Alles genau wie es soll.
Starte ich dieses Script aber alle 2 Minuten per cronjob (nicht als root, sondern als user), reagiert das Script eigenartig.
Hier meine CRONTAB:
Code: Alles auswählen
*/2 * * * * /bin/bash /home/hgridsim/sim >> /home/hgridsim/sim.log
Also "Starting screen and OpenSim.exe (detached)" und darunter das Datum, wann SCREEN neugestartet wurde.
Aber der neugestartete SCREEN-Prozess wird nach kurzer Zeit wieder beendet (ein paar Sekunden).
Woran kann das liegen und was mache ich, um dieses Problem zu lösen?
Vielen Dank,
Daniel