Sponsor-Board.de
Antwort schreiben  Thema schreiben 

Linux Server Startscript HILFE

Verfasser Nachricht

Beiträge: 769
Bewertung: 12
Registriert seit: Feb 2011
Status: offline


Beitrag: #1
Linux Server Startscript HILFE

Hallo zusammen,

Wir benutzen das Cloudsystem Minehook.
Nur das neustarten jeweils immer über die console mit diversen befehlen macht mir gar keine Lust.

Nun habe ich ein Startscript geschrieben aber Irgendwie kommt da beim Ausführen folgende Fehlermeldung:
./minehook.sh: line 36: syntax error near unexpected token `}'
./minehook.sh: line 36: `}'

Hier das Script:
[Link: Registrierung erforderlich]

Code:
#!/bin/bash

_start()
{
    cd Master
            screen -dmS Minehook-Master java -Xmx2048M -jar MineHook-Master_b274.jar
    cd ../
    cd Daemon
            screen -dmS Minehook-Daemon java -jar MineHook-Daemon_b274.jar
    cd ../
    exit 0
}

_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)
                _start $2
        ;;
        stop)
                _stop $2
        ;;
esac

echo
echo "Usage:"
echo " ./minehook.sh [option]"
echo
echo "Options:"
echo " start     Starts the minehook"
echo " stop      Stops the minehook"
exit 2


Zu starten ist jeweils der Master als Jar wie auch der Daemon.

Ich möchte dies aus folgendem Grund, falls mal etwas Abstürzt, das dies wieder automatisch gestartet wird um so längere Downtimes zu überbrücken.

Ich bin über jede Hilfe sehr dankbar Smile


StoЯmMeisteR - RageBears eSports Projektleiter

Contact:
[email protected]
ts.ragebears.de
[Link: Registrierung erforderlich]

Dieser Beitrag wurde zuletzt bearbeitet: 29.01.2018 18:00 von minimal_warrior.

29.01.2018 17:56
 
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren

Beiträge: 1.414
Bewertung: 31
Registriert seit: Mar 2009
Status: offline


Beitrag: #2
RE: Linux Server Startscript HILFE

Ein "fi" fehlt am Ende der letzten If-Abfrage.


Viele Grüße
NevaKee

[Link: Registrierung erforderlich] - [Link: Registrierung erforderlich] - [Link: Registrierung erforderlich]

[Link: Registrierung erforderlich]

[Link: Registrierung erforderlich]

29.01.2018 19:06
 
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren

Beiträge: 46
Bewertung: 2
Registriert seit: Jan 2018
Status: offline


Beitrag: #3
RE: Linux Server Startscript HILFE

Verwende am besten ein Startscript und lege es in den Ordner deiner Wahl.

minehook.sh

Code:
#!/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:

Code:
#! /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.

Code:
sudo chmod +x minehook


Danach noch den Befehl

Code:
sudo update-rc.d minehook defaults 80 10


Und fertig.

//Update: Da war wohl jemand schneller, mit einer einfacheren Lösung Confused Redface Manchmal mache ich mir das gerne kompliziert.


[Link: Registrierung erforderlich]


+ [Link: Registrierung erforderlich] + [Link: Registrierung erforderlich] + [Link: Registrierung erforderlich] + [Link: Registrierung erforderlich] +

Dieser Beitrag wurde zuletzt bearbeitet: 29.01.2018 19:21 von s.n.designs.

29.01.2018 19:20
 
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren

Beiträge: 769
Bewertung: 12
Registriert seit: Feb 2011
Status: offline


Beitrag: #4
RE: Linux Server Startscript HILFE

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.

s.n.designs schrieb:
Verwende am besten ein Startscript und lege es in den Ordner deiner Wahl.

minehook.sh

Code:
#!/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:

Code:
#! /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.

Code:
sudo chmod +x minehook


Danach noch den Befehl

Code:
sudo update-rc.d minehook defaults 80 10


Und fertig.

//Update: Da war wohl jemand schneller, mit einer einfacheren Lösung Confused Redface Manchmal mache ich mir das gerne kompliziert.


StoЯmMeisteR - RageBears eSports Projektleiter

Contact:
[email protected]
ts.ragebears.de
[Link: Registrierung erforderlich]

29.01.2018 20:24
 
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Antwort schreiben  Thema schreiben 

Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  *gelöst* Linux Skript Case VarmintLP 0 1.376 10.03.2015 09:13
Letzter Beitrag: VarmintLP
  Suche jemand der mir etwas in Linux kompiliert Lunchen 3 1.262 02.07.2013 06:58
Letzter Beitrag: Storage-Base.de
  [Hilfe] CS:S Zombie Server Einrichten SH-Hosting 7 1.652 28.03.2013 21:33
Letzter Beitrag: tooti
  [SOLVED] - Hilfe im Bereich Linux gesucht DebianDEV 1 1.277 23.07.2012 19:19
Letzter Beitrag: Madmatti
  [Hilfe] TS3 Server Viewer Slider Problem crocKster 2 1.397 13.05.2012 15:12
Letzter Beitrag: crocKster

 Druckversion anzeigen
 Thema einem Freund senden
 Thema abonnieren
 Thema zu den Favoriten hinzufügen

Sponsor-Board.de

Community
Über uns
Partner
Powered by Mybb: Copyright 2002-2024 by MyBB Group - Deutsche-Übersetzung von Mybb.de
 
© 2007-2024 Sponsor-Board.de - Hosted by OVH

Willkommen auf SB!   Sie benötigen ein Sponsoring?   1. Anmelden   2. Sponsoring-Anfrage erstellen   3. Nachrichten von Sponsoren erhalten   Kostenlos!   Jetzt registrieren