Mit deinem Script wird aber erst eigentlich alles automatisiert, sofern der Master Down geht wieder automatisch gestartet, sehe ich das richtig?
Das ganze sind ja 2 Dateien die zusammen Arbeiten/laufen müssen.
Erst muss die Master gestartet werden und dannach der Daemon der sich dann per Handshake mit dem Master verbindet.
Ich suche nun eine Möglichkeit dies alles vereinfacht zu machen über einen Befehl und falls der Master Down geht wieder alles automatisch neugestartet wird.
Verwende am besten ein Startscript und lege es in den Ordner deiner Wahl.
minehook.sh
#!/bin/sh
screen -dmS Minehook-Master java -Xmx2048M -jar MineHook-Master_b274.jar
Danach legst du die Datei minehook im Ordner /etc/init.d an.
In diese Datei schreibst du folgendes:
#! /bin/sh
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Minehook"
NAME=minehook
USER= #BENUTZER UNTER DEM DAS AUSGEFÜHRT WERDEN SOLL
BINARY=minehook
BINARY_BIN= #VERZEICHNIS BIS ZUR DATEI MINEHOOK.SH
DAEMON=minehook.sh
PIDFILE=$BINARY_BIN/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
[ -x "$BINARY_BIN/$DAEMON" ] || exit 0
. /lib/lsb/init-functions
do_start()
{
su $USER -s /bin/sh -c "$BINARY_BIN/$DAEMON start"
}
do_stop()
{
SCREENID=$(screen -ls | grep -w Minehook-Master | cut -f 2)
if [ $SCREENID ]; then
screen -S Minehook-Master -p 0 -X stuff "`printf "stop\r"`"
while screen -ls | grep -w Minehook-Master > /dev/null
do
sleep .1
done
else
echo "Minehook-Master is not running"
fi
SCREENID=$(screen -ls | grep -w Minehook-Daemon | cut -f 2)
if [ $SCREENID ]; then
screen -S Minehook-Daemon -p 0 -X stuff "`printf "stop\r"`"
while screen -ls | grep -w Minehook-Daemon > /dev/null
do
sleep .1
done
else
echo "Minehook-Daemon is not running"
exit 0
}
case "$1" in
start)
log_daemon_msg "Starting $DESC" ""
do_start
case "$?" in
0|1) log_end_msg 0 ;;
2) log_end_msg 1 ;;
esac
;;
stop)
log_daemon_msg "Stopping $DESC" ""
do_stop
case "$?" in
0|1) log_end_msg 0 ;;
2) log_end_msg 1 ;;
esac
;;
*)
exit 3
;;
esac
:
BITTE DAS VERZEICHNIS EINFÜGEN UND DEN BENUTZER, UNTER DEM DAS AUSGEFÜHRT WERDEN SOLL!!
Gehe über den Terminal in das Verzeichnis /etc/init.d und gebe folgenden Befehl ein.
Danach noch den Befehl
sudo update-rc.d minehook defaults 80 10
Und fertig.
//Update: Da war wohl jemand schneller, mit einer einfacheren Lösung Manchmal mache ich mir das gerne kompliziert.