|
 |
Linux Start-Script Problem (Start-Script durch User starten lassen) |
daKanu
5-Minuten-Ei

Dabei seit: 16.11.2007
Beiträge: 10

|
|
Linux Start-Script Problem (Start-Script durch User starten lassen) |
 |
moin,
junx, ich habe ein problem!
wir haben seit neusten nen klasse root rechner. auf dem root läuft debian 4.0 als lamp version. soweit, sogut...!
nun habe ich mich hingesetzt um scripte zum starten / stopen des servers zu installieren.
genommen habe ich den von counter-strike.de!
so, nachdem ich alles hinbekommen habe (screen mit rechten - verzeichnisse mit rechten) funktioniert das script sehr gut, BIS AUF EINS....
als root eingelogt kann ich das script ohne probleme ausführen "./codpub start"
-> im verzeichnis "/etc/init.d" natürlich
dies funktioniert auch via webmin->other->eigene befehle auch...kommt dann immer "server wird gestartet" / "server wird gestoppt"
nun will ich aber die server nicht als root benutzer laufen lassen, sondern als benutzer "cod".
hab also dem benutzer die rechte zum ausführen gegeben. wenn ich aber nun über webmin->other->eigene befehle dann das script ausführen will, kommt folgendes:
Output from cd /etc/init.d ; ./codpub start ..
su: must be run from a terminal
Starte Server: eSp4u.de - Publice Server: codpub
su: must be run from a terminal
jo...also via putty eingeloggt und das gleiche nochmal:
./codpub start
(debian) password:
Starte Server: eSp4u.de - Publice Server: codpub
(debian) password:
muss sozusagen 2 mal das password vom benutzer cod eingeben, bevor er das script ausführt. daher geht das via webmin auch nicht.
nun meine frage, was muss ich in meinem script einstellen, damit das script auch ohne password-abfrage unter dem benutzer "cod" funktioniert.
wie gesagt, als root eingeloggt funktioniert alles super!
danke für eure hilfe!!!
hier das script nochmal:
#!/bin/sh
CS_USER=cod
# Leave this alone.
NAME=codpub
PATH=/bin:/usr/bin:/sbin:/usr/sbin
# DON'T FORGET TO CHANGE THE PATH TO YOUR NEEDS!
DIR=/home/gameserver/cod/codserver
# Leave this alone.
DAEMON=cod4_lnxded
# Internet-server:
PARAMS="+set fs_basepath /home/gameserver/cod/codserver +set fs_homepath /home/gameserver/cod/codserver +set loc_language 2 +set dedicated 2 +exec pub.cfg +map mp_crossfire"
# Leave this alone.
DESC="eSp4u.de - Publice Server"
case "$1" in
start)
if [[ `su $CS_USER -c "screen -ls |grep $NAME"` ]]
then
echo "CoD4 - Publice Server läuft bereits!"
else
echo "Starte Server: $DESC: $NAME"
su $CS_USER -c "cd $DIR; screen -m -d -S codpub ./$DAEMON $PARAMS"
fi
;;
stop)
if [[ `su $CS_USER -c "screen -ls |grep $NAME"` ]]
then
echo -n "Beende $DESC: $NAME"
kill `ps aux | grep -v grep | grep -i $CS_USER | grep -i screen | grep -i $NAME | awk '{print $2}'`
echo " ... beendet."
else
echo "Kann keinen laufende $DESC finden!"
fi
;;
restart)
if [[ `su $CS_USER -c "screen -ls |grep $NAME"` ]]
then
echo -n "Beende $DESC: $NAME"
kill `ps aux | grep -v grep | grep -i $CS_USER | grep -i screen | grep -i $NAME | awk '{print $2}'`
echo " ... beendet."
else
echo "Kann keinen laufende $DESC finden!"
fi
echo -n "Starting $DESC: $NAME"
su $CS_USER -c "cd $DIR; screen -m -d -S codpub ./$DAEMON $PARAMS"
echo " ... done."
;;
status)
ps aux | grep -v grep | grep cod4_lnxded > /dev/null
CHECK=$?
[ $CHECK -eq 0 ] && echo "CS Public Server is ONLINE" || echo "CS Public Server is OFFLINE"
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
exit 0
|
|
|
|
|
|
|
|
 |
Impressum ||Datenschutzerklärung
|