ich habe mir hier schon seit gestern alles mögliche über sudo und webinterface sachen rausgesucht und bei mir scheint irgend etwas nicht zu funzen.....
ich starte bzw stoppe oder restarte meinen server wie folgt:
passthru("sudo -u root /home/skripte/cs_server start");
passthru("sudo -u root /home/skripte/cs_server stop");
passthru("sudo -u root /home/skripte/cs_server restart");
nun ists so, bei start startet er den server, wie es auch sein sollte. doch bei stop macht er nichts und bei restart macht er auch nur den start befehl.
das komische ist aber sobald ich in der konsole bin und cs_server stop schreibe stopt er den server also ist das ordnung.
Was kann ich machen, damit bei dem user der screen beendet wird zur not würde es ja auch gehen alle prozesse zu killen oder? Wenn ja wie? Oder kann man einfach alle Screens schließen? Bin echt verzweifelt...
hier der Quelltext
Code: Select all
NAME=hlds-test
CS_USER=root
PATH=/bin:/usr/bin:/sbin:/usr/sbin
DIR=/usr/apps/k-cs-test
DAEMON=hlds_run
PARAMS="-game cstrike +maxplayers 12 +map de_dust -port 5555"
case "$1" in
start)
if [[ `su $CS_USER -c "screen -ls |grep $NAME"` ]]
then
echo "HLDS is already running!"
else
echo "Starting Counter-Strike dedicated server for test $NAME"
su $CS_USER -c "cd $DIR; screen -m -d -S hlds-test ./$DAEMON $PARAMS"
fi
;;
stop)
if [[ `su $CS_USER -c "screen -ls |grep $NAME"` ]]
then
echo -n "Stopping Counter-Strike dedicated server for test "
kill `ps aux | grep -v grep | grep -i $CS_USER | grep -i screen | grep -i $NAME | awk '{print $2}'`
echo " ... done."
else
echo "Coulnd't find a running $DESC"
fi
;;
restart)
if [[ `su $CS_USER -c "screen -ls |grep $NAME"` ]]
then
echo -n "Stopping $DESC: $NAME"
kill `ps aux | grep -v grep | grep -i $CS_USER | grep -i screen | grep -i $NAME | awk '{print $2}'`
echo " ... done."
else
echo "Coulnd't find a running $DESC"
fi
echo -n "Starting $DESC: "
su $CS_USER -c "cd $DIR; screen -m -d -S hlds-test ./$DAEMON $PARAMS"
echo " ... done."
;;
esac
exit 0