Morgen,
ich habe eine Frage zu bash Scripten.
Mit einem Freund Spiele ich Running with Rifles, für das wir unseren eigenen Server aufgesetzt haben. Dieser lief gestern Abend auch schon reibungslos.
Dieser Server läuft auf Linux und wird über ein bash Script gestartet. Dabei sind vier Schritte wichtig:
1. Server Programm starten
2. Server starten (IM Server Progamm)
3. Config laden (mit php)
4. Nach 12 Stunden Server beenden und neustarten
So, nur 1 war kein Problem, das war im mitgeliefertem bash schon drin.
2 habe ich irgendwie tatsächlich hinbekommen. Aber ich bin mir nicht sicher ob das so zuverlässig ist...
Das Programm startet und läd dann eine eigene Eingabe in der ich Befehle schreiben kann. Dort muss auch "start_server" rein, jetzt weiß ich nur nicht ob ich das Programm so bedienen kann (also Eingaben weitergeben).
3 hat auch geklappt, denke mal das könnte so auch richtig sein.
Bei 4 bin ich mir garnicht sicher, vor allem ob es so schlau ist das bash Script wirklich 43200 Sekunden schlafen zu lassen
Ihr merkt schon ich hab davon eigentlich keine Ahnung.
Erstmal hier das Scirpt:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#!/bin/sh
cd "$(dirname "$(readlink -f "$0")")"
here="$(pwd)"
export LD_LIBRARY_PATH="$here/lib:$LD_LIBRARY_PATH"
echo "Starting invasion server"
exec ./launch_server "$@" &
sleep 5
expect "*"
send "start_server"
interact
echo "Loading config"
cd "$here/media/packages/vanilla/scripts"
exec php "gamemode_invasion.php" "$@" &
cd "$here"
sleep 12h
echo "Stopping server"
expect "*"
send "exit"
interact
sleep 10
echo "Restarting server"
exec ./launch_invasion "$@"
|
So also wo ich mir vor allem nicht sicher bin ist Nr. 2 und 4.
Zwischen den "sleep 5" seht ihr wie ich versuche das Kommando "start_server" an das Program zu geben während dieses läuft.
Geht das alles so, was muss ich ändern?