[Release] Gescheites Autorestartscript

11/14/2012 00:00 xCPx#1
Hey.
Da ich bis heute noch kien gescheites autorestartscript gesehen habe.
hab ich maln eigenes geschrieben:
Code:
#!/bin/sh
SERVICE='game_m1'
START="./${SERVICE} &"
while ( : ) do
  if ps ax | grep -v grep | grep $SERVICE > /dev/null
  then
    true
  else
    echo "$SERVICE is not running"
    $START
  fi
  sleep 10
done
Man beachte:
Jede game datei brauch einen Individuellen namen (benennt eure verknüpfungen einfach um, also zb für ch1: game_ch1 or whatever)
Den tragt ihr oben ein bei Service.
Danach platziert ihr das autorestartscript einfach in den Ordner der game datei.
benennt das script um in auto.sh und gebt ihm 777 Rechte.
Dann in eurer Start.sh lediglich ändern, dass er immer die auto.sh ausführen soll beim starten
anstatt der game.
(vergesst das & am ende nicht!)

Um den server dann zu rebooten einfach eingeben:
Quote:
killall db game auth sh
db durch den dateinamen des db cores ersetzen
auth durch den dateinamen des Auth cores ersetzen
game durch den dateinamen der ursprungsdatei ersetzen.
Diese 3 namen könnt ihr bei laufendem Server über
Quote:
ps
nachlesen. (das was in den klammern dahinter steht)

Wenn ihr das hier richtig einbaut startet euer core spätestens 10sek nachdem er down ging von selbst neu, komplett ohne Cronjobs or whatever.
11/14/2012 00:21 .iDamage#2
Dankö mit 'ö'
11/14/2012 00:26 DerZynx#3
Danke funktioniert prima! :)
11/14/2012 07:21 .Chuck#4
Sehr schön. Tolle Arbeit und danke für's teilen. Können bestimmt einige gebrauchen :awesome:
11/14/2012 10:32 Prince43#5
Danke dir xCPx hab ein ähnliches script schon selbst gemacht, aber sehr gut ist empfehlenswert für Newcomer im Root/Home/Hamachiserver-Business

greetz Prince
11/14/2012 11:32 .Seriously#6
Also bei mir kommt immer:

PHP Code:
auto.sh: 4:Syntax error: word unexpected (expecting "do") 
Voran liegt das?
11/14/2012 14:18 Red Firestar#7
Funktioniert Prima dank dir *-*
11/14/2012 14:31 .Marcel'#8
Danke.
Auch wenn es nichts weltbewegendes ist.
11/14/2012 14:33 Prσfizσckєr94#9
Auch wenn es schon praktisch ist, empfehle ich euch eure cores mittels gdb zu debuggen ,und lieber, den zum Absturz führenden Fehler, zu fixxen.
11/14/2012 14:45 Teh Plex#10
Was is jetzt daran so Besonders x) ?
11/14/2012 14:53 Computerfreek#11
⁻ this.
Also gescheit ist das nicht wirklich, brutal umständlich sogar. Das geht noch um einiges besser (awk + paar pfade undso).

Dein "while ( : ) do" kann übrigends ganz schön übel ausgehen. Mal auf die Last geachtet, die das Script verursachen dürfte? Anscheinend nicht.
11/14/2012 14:56 xCPx#12
Quote:
Originally Posted by .WhiteBoss™ View Post
Also bei mir kommt immer:

PHP Code:
auto.sh: 4:Syntax error: word unexpected (expecting "do") 
Voran liegt das?
wenn ichs via N++ geschrieben hab kam das bei mir auch habs halt dann direkt via ee geschrieben^^

[Only registered and activated users can see links. Click Here To Register...]

Da mal der link zum dll :)


@Profi etc:
Kann man ja easy einbauen, nur alle scripts die ich bisher gesehen habe prüfen auf ProcessID (was zu 99,9% meist nicht funktioniert) ich hab selber eins gebraucht hasse Cronjobs also hab ich auf die schnelle eins geschrieben.
Zudem haben mich gestern paar danach gefragt da dachte ich mir: Release ichs doch

@Computerfreek: in deinen augen ist eh nichts gescheit aber lassen wir das mal. Wie gesagt, es funktioniert im Gegensatz zum rest was hier pub ist wenigstens
11/14/2012 15:39 Teh Plex#13
CP ;(
Du Bösewicht willst mir nicht mal Antworten was ist daran den so besonders ._.
11/14/2012 16:21 xCPx#14
Es prüft den prozessnamen, der immer gleich bleibt, anstatt auf die prozess id(welche sich auf Freebsd auch mal ändern kann)
11/14/2012 16:47 Teh Plex#15
Aso oke danke x)