Prozess überwachen und entsprechend Datei löschen

Hallöle!

vServer mit Debian4, Apache2, PHP, mySQL, Teamspeak…

Die Software „Teamspeak2“ ist auf meinem vServer installiert und verrichtet dort ihren Dienst. Wenn man sie startet, legt sie eine Datei namens _ tsserver2.pid _ an. Beim Beenden wird diese Datei wieder gelöscht.

Der Prozess unter welchem die Software läuft, heißt _ ./server_linux -PID=tsserver2.pid _ …

Als Cronjob habe ich eingerichtet, daß alle 5 Minuten der Befehl _ ./teamspeak2-server_startscript start _ ausgeführt wird. Dieses Script prüft, ob die PID-Datei vorhanden ist, oder nicht und startet abhängig davon die Software.

Also, ich habe folgendes Problem:

Wenn die Software einmal nicht ordnungsgemäß beendet wird, z.B. durch Reboot oder Absturz des vServers, dann wird die PID-Datei nicht gelöscht. Folglich wird die Software durch den Cronjob nicht neu gestartet, da das Startscript wegen der vorhandenen PID-Datei denkt, die Software liefe noch.

Wie kann ich

a) das Startscript umschreiben,
oder
b) die Gültigkeit der PID-Datei prüfen und diese löschen,
oder
c) was anderes tun,

damit die Software zuverlässig neu gestartet wird, auch wenn niemand dies überwacht?

Ich habe leider ziemlich wenig Ahnung von Linux und kenne nur die wichtigsten Grundlagen.

Vielen Dank schonmal im Voraus!
MrMoods

Hallo,

Die Software „Teamspeak2“ ist auf meinem vServer installiert
und verrichtet dort ihren Dienst. Wenn man sie startet, legt
sie eine Datei namens
_ tsserver2.pid _ an. Beim
Beenden wird diese Datei wieder gelöscht.

Der Prozess unter welchem die Software läuft, heißt
./server_linux
-PID=tsserver2.pid

Hm? Wer sagt, dass der „Prozess“ so heißt?

Wenn die Software einmal nicht ordnungsgemäß beendet wird,
z.B. durch Reboot oder Absturz des vServers,

Hm? VServer kaputt?

Beim Reboot sollte man ein zum Startscript passendes Stop-Script haben, was die Datei mit der PID löscht …

dann wird die
PID-Datei nicht gelöscht. Folglich wird die Software durch den
Cronjob nicht neu gestartet, da das Startscript wegen der
vorhandenen PID-Datei denkt, die Software liefe noch.

a) das Startscript umschreiben,

Erstmal posten.

oder
b) die Gültigkeit der PID-Datei prüfen und diese löschen,
oder

?

c) was anderes tun,

damit die Software zuverlässig neu gestartet wird, auch wenn
niemand dies überwacht?

Warum muss die Software überhaupt dauernd neu gestartet werden? ISt Teamspeakt tatsächlich so extrem instabil?

Ansonsten kann man sowas vermutlich mit den daemontools erschlagen, die launchtools scheinen ähnliches zu können.

Ich habe leider ziemlich wenig Ahnung von Linux

Irgendwie keine besonders gute Voraussetzung, um einen Server zu betreinen …

Sebastian

Der Prozess unter welchem die Software läuft, heißt
_ ./server_linux -PID=tsserver2.pid _ …

Hm? Wer sagt, dass der „Prozess“ so heißt?

Das sagen _ ps aux _ und ich. Denn auch das Startscript startet diese Datei, welche im Verzeichnis des TS-Servers liegt.

Wenn die Software einmal nicht ordnungsgemäß beendet wird,
z.B. durch Reboot oder Absturz des vServers,

Hm? VServer kaputt?

So ungefähr. Das Ding kostet nur 3 Euro im Monat und dementsprechend ist auch die Qualität. Es kommt auch schonmal vor, daß der Anbieter das Ding abschießt oder daß die Hardware mal öfter den Bach runtergeht. Wobei es sich in letzter Zeit stark gebessert hat.

Beim Reboot sollte man ein zum Startscript passendes
Stop-Script haben, was die Datei mit der PID löscht …

Na dann…

a) das Startscript umschreiben,

Erstmal posten.

http://nopaste.com/p/aEhPRJbCC

b) die Gültigkeit der PID-Datei prüfen und diese löschen,

?

Naja, ein Script, welches prüft, ob der Prozess noch läuft. Wenn er läuft ist alles ok, wenn er nicht mehr läuft, PID-Datei löschen.

c) was anderes tun,
damit die Software zuverlässig neu gestartet wird, auch wenn
niemand dies überwacht?

Warum muss die Software überhaupt dauernd neu gestartet
werden? ISt Teamspeakt tatsächlich so extrem instabil?

Keine Ahnung woran es liegt, ich hab da eher den vServer in Verdacht. Es kommt in letzter Zeit auch nicht mehr soooo oft vor. Aber wenn es vorkommt, dann immer genau dann, wenn ich nicht zu Hause bin. Und das ist Mist, da ich der Einzige bin, der Zugriff auf den vServer hat.

Ansonsten kann man sowas vermutlich mit den daemontools
erschlagen, die launchtools scheinen ähnliches zu können.

Kenn ich beides nicht.

Ich habe leider ziemlich wenig Ahnung von Linux

Irgendwie keine besonders gute Voraussetzung, um einen Server
zu betreinen …

Naja, bisher hat es gereicht. Ich weiß, wie ich Apache & Co aufsetze, wie ich Webseiten ans Laufen bekomme und wie ich Programme installiere (z.B. Teamspeak), mehr habe ich bisher nicht gebraucht.