Toon posts:

Script starten na reboot

Pagina: 1
Acties:
  • 51 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik heb redhad 9.0 en een script om een CS:S gameserver te starten. Nu wil ik na het rebooten van me server dit script automatisch laten draaien maar niet onder root. Hoe moet ik dit doen?

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

een rc3.d scriptje zou ik zeggen. Even kijken, kun je niks met een su of sudo constructie?

Zaram module kopen voor je glasvezelaansluiting?


Verwijderd

Topicstarter
rc3.d zegt me dus helemaal nix... ik ken een klein beetje basic linux en wil graag meer basic leren. Het echte werk laat ik wel door expers doen... maar het is een hobby dus doe dit graag zelf.

Dus a.u.b. voor deze noob een noobie antwoord :d

Ik ga trouwens wel even op google naar rc3.d zoeken want soms zegt 1 woordje genoeg om heel veel te leren :D
[edit]
zo te zien is dit dus de dir waar de opstartscripts van apps instaan

Mijn runlevel is 3 :D
rc3.d moet ik dus gebruiken

[ Voor 16% gewijzigd door Verwijderd op 22-05-2005 01:49 ]


  • tomato
  • Registratie: November 1999
  • Niet online
Ik heb hier zelf alleen Debian installaties, daar zit dit systeem iets anders in elkaar, dus ik doe het even uit mijn hoofd. Volgens mij volgt RedHat deze methode.

Maak in /etc/rc3.d een linkje naar een rc scriptje (dat je in /etc/rc.d plaatst) dat argumenten als 'start', 'stop', of 'restart' accepteert. Zoiets dus:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/sh

case "$1" in

'start') # doe maar starten
;;

'stop') # doe maar stoppen
;;

'restart') # doe maar restarten
;;

*) echo "huh"
;;

esac

Waarbij je dus de startup scripts van je gamegedoe aanroept, wellicht met een su(do) ervoor.

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

ok even voor luierikken:

rcX.d zijn mappen voor scripts die op een bepaald runlevel starten. X is het runlevel.
1 is dus boot zonder netwerk
3 boot met netwerk
5 boot met X

ik zou hem dus in 3 plempen en dan bijvoorkeur een hoog nummer geven : S99cs_server.sh ofzo.

su en sudo moet je maar even icm het woordje man in google droppen ;)

Zaram module kopen voor je glasvezelaansluiting?


  • tomato
  • Registratie: November 1999
  • Niet online
Oja, ik neem aan dat je hier eerst naar gezocht hebt, maar als je dit soort dingen via je package manager kunt doen (of anders via setup scripts van je applicatie) moet je dat altijd eerst proberen, die is hier tenslotte voor.

Dit is niet alleen voor beginners ofzo, maar gewoon de beste manier om je systeem netjes en onderhoudbaar te houden. Soms heb je echter geen keus en moet je zelf een beetje gaan sleutelen. Probeer je in die gevallen echter wel altijd aan de policies van je distributie te houden.

Verwijderd

Topicstarter
tomato schreef op zondag 22 mei 2005 @ 01:50:
Ik heb hier zelf alleen Debian installaties, daar zit dit systeem iets anders in elkaar, dus ik doe het even uit mijn hoofd. Volgens mij volgt RedHat deze methode.

Maak in /etc/rc3.d een linkje naar een rc scriptje (dat je in /etc/rc.d plaatst) dat argumenten als 'start', 'stop', of 'restart' accepteert. Zoiets dus:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/sh

case "$1" in

'start') # doe maar starten
;;

'stop') # doe maar stoppen
;;

'restart') # doe maar restarten
;;

*) echo "huh"
;;

esac

Waarbij je dus de startup scripts van je gamegedoe aanroept, wellicht met een su(do) ervoor.
waneer gebruik je die restart en stop?
en wat bedoel je met su(do)?
code:
1
2
3
4
5
case "$1" in

'start') su username
rest van script
;;


Moet het zoiets?
su staat voor su dat weet ik gelukkig:D

Kom hier trouwens denk wel een eind mee. In me script moet ik trouwens wel aangeven wat ik wil draaien(CTF, DM, TDM) kan ik dat ook ergens meegeven?
tomato schreef op zondag 22 mei 2005 @ 01:57:
Oja, ik neem aan dat je hier eerst naar gezocht hebt, maar als je dit soort dingen via je package manager kunt doen (of anders via setup scripts van je applicatie) moet je dat altijd eerst proberen, die is hier tenslotte voor.

Dit is niet alleen voor beginners ofzo, maar gewoon de beste manier om je systeem netjes en onderhoudbaar te houden. Soms heb je echter geen keus en moet je zelf een beetje gaan sleutelen. Probeer je in die gevallen echter wel altijd aan de policies van je distributie te houden.
Het gaat hier om een gameserver waar geen script bijzit

[ Voor 41% gewijzigd door Verwijderd op 22-05-2005 02:03 ]


  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

nou kom op zeg.
een beetje zelf zoeken is ook wel zo makkelijk:

./script start
zo roep je een script aan met parameter start (kijk anders eens in /etc/init.d in de scripts).

En ja een script maken.... zoek eens op google naar bash scripting guide....

scriptje dat commando 'ls' doet (vrij nutteloos, maar als proof-of-concept:
code:
1
2
#!/bin/bash
ls;


gewoon dus #!/bin/bash boven je gewone commando knikkeren ;)

[ Voor 4% gewijzigd door Boudewijn op 22-05-2005 02:07 ]

Zaram module kopen voor je glasvezelaansluiting?


Verwijderd

Topicstarter
@boudewijnlinux

Ga ik doen... Ik heb al een aantal uurtjes gezocht maar kon er niet veel over vinden.. zeker omdat me engels nogal gebrekkig is. Forum is altijd mijn laatste poging

@tomato

Ik zie door de bomen het bos niet meer

Ik heb in me /etc verschillende RCx.d mappen/bestanden

zo heb ik ~RC3.d en als ik daar heen ga zie ik allemaal apps met een nummer ervoor staan. ik denk dat dit de volgoorde van opstarten is??

dan heb ik /rc.d met daarin allemaal /RCx.d mappen
in die mappen staan ook weer apps met een nummer er in..

Runs a program or script as a substitute user. su rjones starts a shell as user rjones. A naked su defaults to root

[ Voor 10% gewijzigd door Verwijderd op 22-05-2005 02:32 ]


  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

haha

rc.d bevat symlinks (ja gooi ie term maar in google) naar de andere rcX.d mappen.
Heel simpel die naamgeving:

S == start
K == kill
en hij begint bij de laagste en gaat dan telkens verder ;)

dus pak S99 ofzo... weet je zeker dat je belangrijke prut (netwerk enzo... is wel makkelijk bij een server) draait als je begint met je scriptje.

Zaram module kopen voor je glasvezelaansluiting?


  • Radiant
  • Registratie: Juli 2003
  • Niet online

Radiant

Certified MS Bob Administrator

Cron? Simpel scriptje schrijven dat checkt of de server draait of niet en zo niet start hem op, en zet het op elke 5 minuten of zoiets.
Wordt hij ook gelijk gerestart als de server om een of andere reden onverwachts down gaat, door een crash of iets.

Zie man crontab

En als je dat onder de user doet als wie waar de server moet draaien heb je ook geen su meer nodig.

[ Voor 16% gewijzigd door Radiant op 22-05-2005 02:39 ]


  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

klopt echter ondersteunen veel progjes die je voor game servers gebruikt dat niet zo 1-2-3, of je moet zelf met een pid file gaan werken.....

je kunt dan wel met ps aux| grep blabla gaan werken.... maar ga dan even die pipe, ps aux en grep aan de TS uitleggen wil je?

Zaram module kopen voor je glasvezelaansluiting?


Verwijderd

Topicstarter
In me script zit een stuk code die checkt of die draait :P

btw waarom opeens een cron job?

[ Voor 24% gewijzigd door Verwijderd op 22-05-2005 03:04 ]


  • tomato
  • Registratie: November 1999
  • Niet online
Waarom je dit met een cronjob zou doen is me ook niet duidelijk.
Verwijderd schreef op zondag 22 mei 2005 @ 01:59:
waneer gebruik je die restart en stop?
De 'stop' wordt gebruikt bij een shutdown en een restart kun je zelf gebruiken in geval van problemen of onderhoud.
en wat bedoel je met su(do)?
Met su(do) kun je een commando onder een andere user uitvoeren. Als je startup script in /home/piet/bin/script staat en piet moet de service starten, dan wordt je fragment zoiets:

code:
1
2
3
4
5
6
case "$1" in

'start')
  echo "Starting service datendat"
  sudo -u piet /home/piet/bin/script
;;
In me script moet ik trouwens wel aangeven wat ik wil draaien(CTF, DM, TDM) kan ik dat ook ergens meegeven?
Dat zou ik zo niet kunnen zeggen, als het goed is kun je dat opmaken uit de documentatie die je bij je applicatie hebt.

Ik kan me trouwens wel voorstellen dat dit even lastig is als het helemaal nieuw is en je de termen niet kent. Vanaf hier moet je er wel uit komen denk ik. Vergeet niet dat de man pages vaak ook veel informatie kunnen geven, hoef je nog niet eens naar Google.

[ Voor 6% gewijzigd door tomato op 22-05-2005 03:22 ]


  • Radiant
  • Registratie: Juli 2003
  • Niet online

Radiant

Certified MS Bob Administrator

Dan is het nog makkelijker en kan je misschien gewoon dat script al in je crontab zetten :)

Waarom cron.. zie boven, het checkt steeds of je server draait of niet, dus in het geval van een crash, reboot van de server machine, enz zal je server altijd gerestart worden. Het enige wat misschien een klein nadeeltje is dat de check pas wordt uitgevoerd als de cron job gedraait wordt, dus om de 5 minuten bijvoorbeeld, niet direct na een restart.
Een rc scriptje maken is natuurlijk ook een prima oplossing, het is maar een idee.

Om maar even een voorbeeld te geven van hoe je het zou kunnen doen en uit te leggen hoe cron zo'n beetje werkt:
In je cron file zou je zoiets krijgen:
code:
1
*/5 * * * * /pad/naar/scriptje 1>/dev/null 2>&1

De */5 zorgt ervoor dat elke 5 minuten de job wordt uitgevoerd, de *'tjes daarna staan voor uur, dag van de maand, maand, en dag van de week (in die volgorde). Elk uur, elke dag, elke maand, enz. dus.

Als je echt alleen wilt dat het na een reboot wordt uitgevoerd kan je dit gebruiken:
code:
1
@reboot /pad/naar/scriptje 1>/dev/null 2>&1

of een combinatie van die twee.

Die 1> /dev/null 2>&1 zorgt ervoor dat evt. output van het scriptje naar /dev/null gaat (niet wordt weergegeven dus), omdat cron automatisch een mailtje stuurt van de output, anders raakt je mailbox een beetje vol. Als het script alleen output geeft als de server daadwerkelijk wordt opgestart is het misschien wel een idee om de output niet te supressen, omdat je dan ziet wanneer de server gerestart wordt.

Gooi die line(s) in een filetje en draai crontab filetje en het staat erin. Met crontab -l kan je dan nog kijken wat er op het moment in je crontab staat en met crontab -r gooi je hem leeg.

  • Zwerver
  • Registratie: Februari 2001
  • Niet online
Uhhhh, weet je? Ik heb hier geen zin in. Wat jij wil doen is basic kennis en kan je zo uit google harken :?

Woonachtig Down Under. Ik negeer je insults niet, maar tegen de tijd dat ik ze lees zijn ze meestal niet relevant meer

Pagina: 1

Dit topic is gesloten.