Re: wie shell script ordentlich beenden
Am 2006-03-27 16:16:16, schrieb Peter:
> Erstmal vielen Dank für eure Hilfe.
>
> Ich hab jedoch noch ein Problem mit der shell Programmierung.
> Bei dem Server werden zwei Prozesse gestartet.
> hlds_run wird von meinem Script gestartet,
> hlds_i686 wird durch hlds_run gestartet.
>
> Um den Server zu stoppen, versuche ich nun die PID von hlds_i686 über
> /bin/ps aux | awk '/hlds_i686 -game dod \+maxplayers 21/ {print $2}'
> zu ermitteln
Im script machste ein:
----8<----------------------------------------------------------
#!/bin/bash
# Definieren des auszuführenden Befehls
COMMAND=hdls_i686
# ermitteln der aktuellen seriellen Zeit seit 1.1.1970
let CTIME=`date +%s`
# Ausführen des Befehls und in den hintergrund schicken
$COMMAND &
# Nun suchen wie alle Prozesse die den
# den namen unseres Befehls haben
(ps -f -C $COMMAND |grep "$COMMAND" |tr -s " ") |
while read VAL ; do
# Wenn mehrere da sind, arbeiten wir
# sie einem nach dem anderen ab
let STIME=`date --date=\`echo "$VAL" |cut -d " " -f5` +%s`+20
# nun vergleichen wir, ob der zu überprüfenden
# Prozess nach unserer CTIME gestartet wurde
if [ $STIME -gt $CTIME ] ; then
# wenn ja, schreiben wir ne PID
echo "$VAL" |cut -d " " -f2 >/games/run/$COMMAND.pid
# und beenden mit exit
exit 0
fi
done
exit 0
----8<----------------------------------------------------------
Ähm, was ist das:
> begin 666 dodhid1.dat
> M(R$O8FEN+V)A<V@-"B,@1&%Y(&]F($1E9F5A="!,:6YU>"!397)V97(L(%-E
<snip>
> begin 666 dod1.dat
> M(R$@+V)I;B]B87-H#0HC#0HC(R,@0D5'24X@24Y)5"!)3D9/#0HC(%!R;W9I
???
Greetings
Michelle Konzack
--
Linux-User #280138 with the Linux Counter, http://counter.li.org/
##################### Debian GNU/Linux Consultant #####################
Michelle Konzack Apt. 917 ICQ #328449886
50, rue de Soultz MSM LinuxMichi
0033/3/88452356 67100 Strasbourg/France IRC #Debian (irc.icq.com)
Reply to: