Sie sind nicht angemeldet.

NoXx

cookie-cutter tee

(52)

  • »NoXx« ist der Autor dieses Themas

Beiträge: 32

Ingame-Name: »NøXx

Clan: Kifferstube

Renommeemodifikator: 5

  • Nachricht senden

1

Donnerstag, 10. Januar 2013, 16:38

Linux init.d Autorestartscript

Jo moin und zwar bin ich auf der Suche nach nem Restartscript, welches Server bei einem Crash automatisch wieder startet, denn aktuell hoste ich für einen Clan den zChaos Mod und der ist noch recht instabil.
Würde sowas auch selber können aber wenn es schon wer gemacht hat, mache ich mir ja nur umsonst Arbeit und darum wollte ich fragen ob es das schon gibt.
Mit freundlichen Grüssen
NoXx

Malachite

friendly tee

(1 229)

  • »Malachite« ist männlich

Beiträge: 201

Wohnort: http://goo.gl/bwF1X

Ingame-Name: Formeo [DE]

Renommeemodifikator: 11

Danksagungen: 158

  • Nachricht senden

2

Donnerstag, 10. Januar 2013, 20:42

Dafür brauchst du doch kein Initskript. Starte den Server einfach so:

Quellcode

1
while true;do ./teeworlds_srv;done


Erklärung:
Innerhalb einer Endlosschleife befindet sich der Befehl zum Starten des Servers. Sobald er beendet wird, fängt sie von vorne an und der Server wird neu gestartet.
Allerdings wird er auch neu gestartet, wenn du ihn in der Rcon abschaltest. Um ihn abzuschalten, drücke [Strg] + [C].

Es haben sich bereits 2 registrierte Benutzer bedankt.

Benutzer, die sich für diesen Beitrag bedankt haben:

DerHase (10.01.2013), RafaelXl (25.11.2013)

  • »Schwarzer Ritter« ist männlich

Beiträge: 917

Beruf: VIP

Clan: °SoJ°

Renommeemodifikator: 13

Danksagungen: 4

  • Nachricht senden

3

Donnerstag, 10. Januar 2013, 20:42

Kannst ja mal gucken ob es damit läuft, habs grad bei Google gefunden.
https://www.teeworlds.com/forum/viewtopic.php?id=5850

/EDIT:
Ja, aber Endlosschleifen sind unsauber :D
Zitate
Keine Angst ich für meinen Teil halt von DDrace genauso viel wie von City :P beides fürn Kübel
zum Lesen den Text mit der Maus markieren

Ganz Ehrlich?
Hast du auch mal an Kritik gedacht?
Was er verbessern kann?
Was er falsch gemacht hat?
Welche Bilde findest du insbesondere schlecht?

NoXx

cookie-cutter tee

(52)

  • »NoXx« ist der Autor dieses Themas

Beiträge: 32

Ingame-Name: »NøXx

Clan: Kifferstube

Renommeemodifikator: 5

  • Nachricht senden

4

Donnerstag, 10. Januar 2013, 21:59

Gut also @Malachite Danke aber kann ein Befehl aus dem Loop rausgeschlossen werden? Also wenn ich dann in meinem Script per daemon den stop Befehl ausführe, dass der funktioniert, denn aktuell kann ich nach dem starten nichts mehr tun und muss die pid killen :I
@Schwarzer Ritter der DL-Link von dem Thread ist down^^

Grüsse

Malachite

friendly tee

(1 229)

  • »Malachite« ist männlich

Beiträge: 201

Wohnort: http://goo.gl/bwF1X

Ingame-Name: Formeo [DE]

Renommeemodifikator: 11

Danksagungen: 158

  • Nachricht senden

5

Donnerstag, 10. Januar 2013, 22:13

Nein, das ist wirklich nur eine einfache Endlosschleife, mehr nicht, daher kann sie nur mit Signalen angehalten werden.

  • »BotoX« ist männlich

Beiträge: 647

Wohnort: ( ͡° ͜ʖ ͡°)

Beruf: ( ͡° ͜ʖ ͡°)

Ingame-Name: ( ͡° ͜ʖ ͡°)

Renommeemodifikator: 13

Danksagungen: 36

  • Nachricht senden

6

Donnerstag, 10. Januar 2013, 22:15

lolwat Schwarzer Ritter?! Endlosschleifen sind meiner Meinung nach das Beste dafür.
Hier ist mein Script:
start.sh

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#!/bin/bash

# Configs are saved in config/prefixX.cfg		X=The server number
# Server logs are saved in logs/prefixX.log		X=The server number
# Packages used: su, nohup and pkill

# Define the server file
server_file=teeworlds_srv
# Define the number of servers
server_num=1
# Define the user under which the server runs
user=teeworlds
# Define the config prefix
config_prefix=insta
# Make log files (1=true / 0=false)
logs=0

if [ -z $1 ]
then
		echo "Please supply an argument"
		echo "Usage: $0 {start|stop|restart}"
		exit 1
fi

cd $(dirname $0)

case "$1" in
	start)
		if [ "finger ${user} | grep -c 'Login'" = 0 ]; then
			echo "No such user ""${user}"""
			exit 1
		fi

		if ([ "$(id -u)" != "0" ] && [ "$(whoami)" != "${user}" ]); then
			echo "This script must be run as root or as ${user}"
			exit 1
		fi

		if [ ${logs} != 0 ]; then
			mkdir -p logs
		fi

		chown -R ${user} *
		chmod -R ug+rwx *
		for ((i = 1; i <= ${server_num}; i++))
		do
			if [ "$(id -u)" == "0" ]; then
				if [ ${logs} != 0 ]; then
					rm -f ${PWD}/logs/${config_prefix}${c}.log &> /dev/null
					su -l ${user} -c "cd ${PWD} && nohup sh ${PWD}/server.sh ${server_file} ${config_prefix} ${i} > ${PWD}/logs/${config_prefix}${i}.log &"
				else
					su -l ${user} -c "cd ${PWD} && nohup sh ${PWD}/server.sh ${server_file} ${config_prefix} ${i} > /dev/null &"
				fi
			else
				if [ ${logs} != 0 ]; then
					rm -f ${PWD}/logs/${config_prefix}${c}.log &> /dev/null
					nohup sh ${PWD}/server.sh ${server_file} ${config_prefix} ${i} > ${PWD}/logs/${config_prefix}${i}.log &
				else
					nohup sh ${PWD}/server.sh ${server_file} ${config_prefix} ${i} > /dev/null &
				fi
			fi
			sleep 0.1
		done
	;;
	stop)
		for ((i = 1; i <= ${server_num}; i++ ))
		do
			pkill -f "sh ${PWD}/server.sh ${server_file} ${config_prefix} ${i}"
			sleep 0.1
			pkill -f "${PWD}/${server_file} -f ${PWD}/config/${config_prefix}${i}.cfg"
		done
	;;
	restart)
		for ((i = 1; i <= ${server_num}; i++ ))
		do
			pkill -f "${PWD}/${server_file} -f ${PWD}/config/${config_prefix}${i}.cfg"
			sleep 0.1
		done
	;;
	*)
		echo "Usage: $0 {start|stop|restart}"
		exit 1
esac
exit 0

server.sh

Quellcode

1
2
3
4
5
6
7
8
#!/bin/bash

while true;
do
${PWD}/${1} -f ${PWD}/config/${2}${3}.cfg
echo "RESTART!"
sleep 0.1
done

NoXx

cookie-cutter tee

(52)

  • »NoXx« ist der Autor dieses Themas

Beiträge: 32

Ingame-Name: »NøXx

Clan: Kifferstube

Renommeemodifikator: 5

  • Nachricht senden

7

Freitag, 11. Januar 2013, 07:20

Genau das habe ich gesucht, danke dir Botox!
Grüsse

Ähnliche Themen