PDA

Bekijk Volledige Versie : Start/stop/restart script



pim1991
03/01/08, 17:54
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!

daanl
03/01/08, 17:56
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

EHS-Jerre
03/01/08, 17:58
welke OS?

pim1991
03/01/08, 18:11
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.

royen99
03/01/08, 18:58
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

pim1991
03/01/08, 19:15
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?

pim1991
05/01/08, 14:27
niemand?

royen99
05/01/08, 15:39
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"

pim1991
06/01/08, 14:52
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
23/08/09, 23:47
<knip>