jar beim booten starten

Status
Für weitere Antworten geschlossen.

saho1

Benutzer
Registriert
10. Dez. 2011
Beiträge
17
Reaktionspunkte
1
Punkte
9
Hallo @ all & frohe Weihnachten!

Ich versuche verzweifelt ein JAR-File als Dienst beim Booten meines DS212J zu starten.
Java ist erfolgreich installiert und wenn ich das JAR im Terminal starte läuft auch alles wie gewollt.

Zum Start hab ich folgendes File unter /usr/syno/etc/rc.d/S99Historian.sh angelegt:

Rich (BBCode):
#! /bin/sh
### BEGIN INIT INFO
# Provides:          CCU-Historian
# Required-Start:    
# Required-Stop:     
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Kurze Beschreibung
# Description:       Längere Bechreibung
### END INIT INFO
# Author: no

# Aktionen
case "$1" in
    start)
        cd /volume1/public/ccu-historian/
        java -jar ./ccu-historian.jar
        ;;
    stop)
        
        ;;
    restart)
        
        ;;
esac

exit 0

Dieses File habe ich natürlich auch ausführbar gemacht. Leider führt dieser und auch diverse andere Wege nicht zum gewünschten Erfolg weswegen ich mich jetzt an euch wende.

Sollte ich bei meinen diversen Suchen etwas übersehen haben bitte ich das zu entschuldigen.

Für eure Hilfe im Voraus vielen Dank!

Gruß

Saho
 
Das Problem hat sich gelöst!

Hier die Lösung damit ein anderer nicht wie ich ewig suchen muß:

1. habe ich das Bootskript jetzt unter /opt/etc/init.d/

2. muß der der path zur java binary fest angegeben werden (verstehen muß ich das aber nicht, oder!?!)

siehe hier:

Rich (BBCode):
#! /bin/sh
### BEGIN INIT INFO
# Provides:          CCU-Historian
# Required-Start:    
# Required-Stop:     
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Kurze Beschreibung
# Description:       Längere Bechreibung
### END INIT INFO
# Author: saho

# Aktionen
case "$1" in
    start)
        cd /volume1/public/ccu-historian/
        /volume1/@appstore/java7/jre/bin/java -jar /volume1/public/ccu-historian/ccu-historian.jar
        ;;
    stop)
        
        ;;
    restart)
        
        ;;
esac

exit 0

Gruß

Saho
 
1. Ja, besser, da überlebt es auch ein Firmwareupdate.
2. Weil beim Hochfahren ein anderer PATH gesetzt ist als auf der Konsole. Am einfachsten bei Skripten immer den kompletten Pfad angeben.

Du solltest auch noch was für stop machen, ansonsten kann das zu Problemen beim Herunterfahren führen.
 
Hi Merthos,

Danke für deine Antwort! An den Stopbereich hab ich auch schon gedacht, bin aber an dem Problem gescheitert, dass das jar ja als Prozess läuft und ich erst ermitteln müßte welchen dieses jar grad belegt. Oder ich müßte Java komplett abschießen, aber das ist ja auch nicht sauber.

Wie würdest du das lösen?

Gruß und noch einen schönen Feiertag!

Sahi
 
Im Zweifel ist ein killall immer noch besser als ein Hängenbleiben beim Herunterfahren.

Ansonsten die PID nach dem Starten speichern:
Rich (BBCode):
echo $! >/var/run/pidfile
und dann nur diesen beenden:
Rich (BBCode):
kill `cat /var/run/pidfile`
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat