PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Automatischer restart


Storm2k
21.04.05, 18:20
Hallo,

ich lasse einen gameserver über wine starten.
Da dieser ab und zu mal abschmiert wollte ich nen script benutzen, das diesen dann sofort wieder anmacht :)

#!/bin/sh

BASEDIR=/home/user/.wine/drive_c/server/
COMMAND="wine meinserver.exe"
LOGFILE=$BASEDIR/server.log
INITPIDFILE=$BASEDIR/server.pid
PIDFILE=$BASEDIR/server2.pid

case "$1" in
start)
echo starting startscript and mohaa_lnxded
$0 fork &
echo $! > $INITPIDFILE
disown
;;
stop)
if test -f $INITPIDFILE ; then
if ps -p `cat $INITPIDFILE` | grep startscript 1> /dev/null 2> /dev/null ; then
echo killing startscript
kill -TERM `cat $INITPIDFILE` 1> /dev/null 2> /dev/null
sleep 2
kill -9 `cat $INITPIDFILE` 1> /dev/null 2> /dev/null
fi
rm $INITPIDFILE
fi
if test -f $PIDFILE ; then
if ps -p `cat $PIDFILE` | grep mohaa_lnxded 1> /dev/null 2> /dev/null ; then
echo killing mohaa_lnxded
kill -TERM `cat $PIDFILE` 1> /dev/null 2> /dev/null
sleep 2
kill -9 `cat $PIDFILE` 1> /dev/null 2> /dev/null
fi
rm $PIDFILE
fi
;;
restart)
$0 stop
$0 start
;;
check)
if test -f $INITPIDFILE ; then
if ! ps -p `cat $INITPIDFILE` | grep startscript $1> /dev/null 2> /dev/null ; then
if test -f $PIDFILE ; then
if ps -p `cat $PIDFILE` | grep ucc 1> /dev/null 2> /dev/null ; then
kill -TERM `cat $PIDFILE` 1> /dev/null 2> /dev/null
sleep 2
kill -9 `cat $PIDFILE` 1> /dev/null 2> /dev/null
fi
rm $PIDFILE
fi
rm $INITPIDFILE
$0 start > /dev/null
fi
else
if test -f $PIDFILE ; then
if ps -p `cat $PIDFILE` | grep mohaa_lnxded 1> /dev/null 2> /dev/null ; then
kill -TERM `cat $PIDFILE` 1> /dev/null 2> /dev/null
sleep 2
kill -9 `cat $PIDFILE` 1> /dev/null 2> /dev/null
fi
rm $PIDFILE
fi
$0 start > /dev/null
fi
;;
fork)
while [ true ] ; do
if test -f $LOGFILE ; then
mv $LOGFILE $LOGFILE.old
fi
$BASEDIR/$COMMAND -log > $LOGFILE &
echo $! > $PIDFILE
wait
done
;;
*)
echo "Usage: $0 {start|stop|restart|check}"
;;
esac

wenn ich nun das script starte( ./startscript )

bekomme ich nur das:
./startscript: line 71: /home/user/.wine/drive_c/server//wine: No such file or directory


mir scheint als ob er das leerzeichen nach wine net schlucken will :-(

Kann mir wer helfen?

rudi_m
21.04.05, 19:20
Liegt denn da wirklich dein wine?:
/home/user/.wine/drive_c/server/wine

Storm2k
21.04.05, 19:46
Ne du :)

BASEDIR=/home/user/.wine/drive_c/server/ <-- da liegt der server

COMMAND="wine meinserver.exe" <-- und das soll er ausführern.

also kommt das raus:
/home/user/.wine/drive_c/server/wine er rallt das leerzeichen net.

Sollte ja eigendlich wine meinserver.exe sein.

jeppo
21.04.05, 20:32
ich würd erst mit cd ins serverdir wechseln
und dann starten
deine zeile nimmt an das sich wine im serverdir befindet

rudi_m
21.04.05, 20:35
naja dann solltest Du ihm das auch so sagen!
Wenn es kein /home/user/.wine/drive_c/server/wine gibt dann kann er es auch nicht ausfuerhren!

Du willst sicherlich das machen:

wine $BASEDIR/meinserver.exe

oder

cd $BASEDIR
$COMMAND

Die 2te Variante wuerde ich vorziehen. Moeglicherweisse muss man es sogar so machen damit meinserver.exe weitere benoetigte files findet.