Moin,
das sieht schon ein wenig anders aus. Da bietet sich folgendes Gerüst an, das auch auf Steuerdateien verzichten kann. Du bastelst das Script sozusagen mit Varianten (wobei die "start"-Variante eigentlich nicht nötig ist, das Script kann ja nach dem Start gleich überwachen):
Code:
#! /bin/bash
# wenn Parameter fehlt: gepflegte Fehlermeldung + unwirsches Ende
if test -z "$1"; then
echo "usage: $0 start|stop|restart" >&2
exit 1
fi
# mal gucken, ob Serverprozess rennt
is_running="`ps -ef | grep Serverprozess | grep -v grep`"
# abh. von den Parametern weiter
case "$1" in
start)
# ist verstorben: Starten
test -z "$is_running" && /Pfad/zum/Serverprozess
;;
stop)
# zappelt noch: Killen
test -n "$is_running" && killall Serverprozess
# ggf. Script-Instanz in restart-Schleife ebenfalls killen
killall `basename $0`
;;
restart)
# aller 10 Sekunden gucken, ggf. Neustarten
while true; do
test -z "$is_running" && /Pfad/zum/Serverprozess
sleep 10
is_running="`ps -ef | grep Serverprozess | grep -v grep`"
done
;;
*)
# falscher Parameter: meckern und raus
echo "usage: $0 start|stop|restart" >&2
exit 1
;;
esac
exit 0
Vorsicht: ungetestet und nur als prinzipieller Bauplan zu verstehen (Errorhandling, Serverprozess evtl. im Hintergrund starten, wenn er das nicht selbst tut, usw.).
Jan
Lesezeichen