Bekijk Volledige Versie : Start/stop/restart script
Hallo,
Omdat ik andere systemen veel te moeilijk vindt en ik alleen maar wat simpels wil ben ik op zoek naar een script die de kan stoppen / starten / restarten.
Dat script moet dan wel werken via screen of iemand moet mij vertellen hoe ik het beter kan doen.
Ook is het handig dat het screen steeds voor elke server een eigen gebruiker gebruikt en dus niet root.
Met google ben ik blijkbaar niet goed want daar vind ik niets.
Misschien dat iemand zo'n script heeft liggen (ben bereid om er een klein bedrag aan te besteden) of op google iets weet.
Alvast bedankt!
zoals je zegt gewoon met screen werken dat proc killen met stop en met start weer starten en restart eerst stoppen dan starten easy as that
linux...(screen command ook in windows? :p)
@Daan
Ja maar heb dus niet veel verstand hoe ik het pid te weten kom enz.
Heb dus hulp nodig.
Het volgende scriptje werkt perfect.. games draaien als root, maar vrot er even een su commando bij om de games onder een user account te laten draaien:
#!/bin/bash
FPATH="/home/games/cs01/" # Filepath on disk where the game is.
EXENAME="srcds" # Name of the exe to run the game
USER="cs01" # Screen ID to run the game
IP="193.238.25.212" # IP for the game
PORT="27015" # Port the game should listen on
TICKRATE="100" # Tickrate (refresh rate actually)
GAME="cstrike" # Which gametype
MAXSLOTS="24" # Number of players
start()
{
screen -LdmS ${USER} ${FPATH}${EXENAME} -game ${GAME} \
+maxplayers ${MAXSLOTS} +map de_dust +ip ${IP} \
+port ${PORT} -tickrate ${TICKRATE} -vacbeta
echo "Server has been started."
}
stop ()
{
screen -r ${USER} -X quit
echo "Server has been stopped."
}
echo -n "Available options: (S)tart, (R)estart or (K)ill the gameserver : " ; read INPUT
case ${INPUT} in
S) start ;;
K) stop ;;
R) stop;start ;;
esac
Oke, dat ga ik zeker eens proberen.
Maar hoe kan ik zoiets veilig via een webpaneel oproepen?
EDIT:
@royen99:
Ik krijg het inderdaad goed werkend onder root met hier en daar wat aanpassingen voor COD4.
Maar als ik er "su ${USER}" voorzet dan gaat hij inderdaad naar die gebruiker en dan voor je S in maar dan doet hij niks. Hij zegt dan ook niet "Server has been...".
Die gebruiker etc. bestaat enz.
Wie o Wie weet wat het is?
Wat in elk geval werkt is (qua su etc):
su ${USER} -m -c "screen -LdmS ${USER} bla bla bla"
en
su ${USER} -m -c "screen -r ${USER} -X quit"
Heb nu een eigen scriptje gemaakt zodat ik makkelijk kan switchen etc.
nu wil ik deze scripts per user kunnen oproepen (in usermin).
Ik heb nu 3 commands aangemaakt en hetvolgende ingesteld:
Run as user: cod4_1 (bijvoorbeeld)
Maar als ik dan inlog op usermin als cod4_2 dan kan ik de server restarten van gebruikers cod4_2.
Hoe kan ik ervoor zorgen dat dat niet meer kan en dat alleen gebruiker cod4_2 zijn server kan restarten en cod4_1 ook zijn eigen (en ga zo maar door ;)).
Alvast bedankt voor de hulp!
mgj.jansen
24/08/09, 00:47
<knip>