mirror of
https://github.com/UzixLS/armastuff.git
synced 2025-07-18 14:51:23 +03:00
62 lines
1.4 KiB
Bash
Executable File
62 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
PROGDIR=/opt/arma
|
|
HOMDIR=/var/games/arma/$1
|
|
|
|
if [ -z "$1" ]; then echo "Usage: $0 <servername>"; exit 1; fi
|
|
if [ ! -r "$HOMDIR" ]; then echo "$0: cannot read $HOMDIR"; exit 3; fi
|
|
|
|
touch "$HOMDIR/var/ladderlog.txt" "$HOMDIR/var/won_rounds.txt" "$HOMDIR/var/won_matches.txt"
|
|
test -e "$HOMDIR/var/commands" && rm "$HOMDIR/var/commands" ; mkfifo "$HOMDIR/var/commands"
|
|
|
|
|
|
start() {
|
|
if pgrep -f -- "--userdatadir $HOMDIR" >/dev/null ; then
|
|
echo "$0: $HOMDIR already in use"
|
|
exit 2
|
|
fi
|
|
|
|
nice -n 2 perl -T $PROGDIR/scripts/armatop.pl --workdir="$HOMDIR/var" &
|
|
echo -n $! >"$HOMDIR/var/pid.armatop"
|
|
|
|
$PROGDIR/bin/armagetronad-dedicated --userdatadir "$HOMDIR" --input "$HOMDIR/var/commands" >"$HOMDIR/var/log" 2>&1 &
|
|
echo -n $! >"$HOMDIR/var/pid.core"
|
|
}
|
|
|
|
reload() {
|
|
test -r $HOMDIR/var/pid.core && kill -HUP `cat $HOMDIR/var/pid.core`
|
|
}
|
|
|
|
stoppid() {
|
|
p=$1
|
|
if [ -r $p ]; then
|
|
for i in `seq 10`; do
|
|
if ps `cat $p` >/dev/null; then
|
|
kill `cat $p`
|
|
else
|
|
break
|
|
fi
|
|
sleep 1
|
|
done
|
|
if ps `cat $p` >/dev/null; then
|
|
kill -9 `cat $p`
|
|
fi
|
|
rm $p
|
|
fi
|
|
}
|
|
|
|
stop() {
|
|
stoppid $HOMDIR/var/pid.armatop
|
|
stoppid $HOMDIR/var/pid.core
|
|
exit $1
|
|
}
|
|
|
|
trap ":;stop" TERM INT EXIT
|
|
trap ":;reload" HUP
|
|
|
|
echo -n $$ >"$HOMDIR/var/pid"
|
|
|
|
start
|
|
while jobs %2 >/dev/null 2>&1; do sleep 1; done
|
|
stop 1
|