• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Problem mit restartscript

Hi @ all,

ich habe ein kleines Proble, und zwar habe ich mir ein Restart Script von einer Seite gezogen und wollte damit erreichen, das wenn man einen Gameserver quittet er wieder neu startet. Hier mal das Script:

Code:
# restart.sh file
ulimit -n 100000
while :
do
./hlds_run ...
sleep 1
done

Wenn ich dies aufrufe kommen bei mir folgende Fehler:

Code:
: invalid numberne 1: ulimit: 100000
./restart.sh: line 6: syntax error near unexpected token `done'
./restart.sh: line 6: `done'

Könnt ihr mir bitte helfen?
 
hi,

ich kenne mich jetzt mit bash-scripting nicht so super aus, aber erstens sieht das syntaktisch falsch aus und zweitens sehe ich gar keine bedingung die prüft ob der dienst läuft.

wie rufst du das denn auf? von hand oder als cronjob? ich würde an deiner stelle mal schauen ob der dienst ein pidfile anlegt, und dann per mit einem script prüfen, ob ein prozess mit dieser pid existiert, wenn nicht den dienst neustarten.

da ich jetzt ebenfalls google bemühen müsste um die konkrete code beispiele zu geben überlasse ich dir das :)

gruss

christian
 
RedDust schrieb:
[...] und zwar habe ich mir ein Restart Script von einer Seite gezogen [...]
Aha. Von welcher Seite?
RedDust schrieb:
[...] und wollte damit erreichen, das wenn man einen Gameserver quittet er wieder neu startet. [...]
Und du bist dir sicher dass damit ein beendeter Gameserver neu gestartet wird?

man bash
ulimit [-SHacdefilmnpqrstuvx [limit]]
Provides control over the resources available to the shell and to processes started by it, on systems that allow such control.
[...]
-n The maximum number of open file descriptors (most systems do not allow this value to be set)
[...]

ceegee schrieb:
[...] aber erstens sieht das syntaktisch falsch aus [...]
Genau. Wenn dann gehört nach 'while :' ein Semikolon.
Also
Code:
while :;
...
Obwohl ich das ganze auch nicht verstehe.

Wenn du überprüfen willst, ob ein Prozess läuft, machst du das - wie ceegee bereits angemerkt hat - mit einen pidfile, oder du fragst die Prozessliste ab 'ps -A | grep <programm>'.
Das ganze (Script) führst du dann mit einem Cronjob regelmäßig aus.
 
Oben