Jump to content

[Java] Start Stop Script @Rasp


Recommended Posts

Ich habe eine kleines Programm geschrieben welches FerienHaus.jar heist

 

ich möchte gerne das diese beim Starten des PI ausgeführt wird wie der BrickD

 

dazu habe ich den StartScript von BrickD mit meinen Daten geändert aber wenn ich den Script zum Starten in der Konsole ausführe gibt er die Fehlermeldung (Exec formart error) aus.

 

 

 

#!/bin/sh
### BEGIN INIT INFO
# Provides:          FerienHaus
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Ferien Haus
# Description:       Ferien Haus
### END INIT INFO


PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/home/pi/FerienHaus.jar
OPTIONS=--daemon
NAME=FerienHaus
PIDFILE=/var/run/$NAME.pid
DESC="Ferien Hause"

test -f $DAEMON || exit 0

set -e

case "$1" in
  start)
echo -n "Starting $DESC: "
start-stop-daemon --verbose --pidfile $PIDFILE --exec $DAEMON --start -- $OPTIONS
;;
  stop)
echo -n "Stopping $DESC: "
start-stop-daemon --verbose --pidfile $PIDFILE --stop
;;
  restart|force-reload)
echo "Restarting $DESC: "
start-stop-daemon --verbose --pidfile $PIDFILE --stop
sleep 1
start-stop-daemon --verbose --pidfile $PIDFILE --exec $DAEMON --start -- $OPTIONS
;;
  status)
echo -n "Status of $DESC: "
if [ -n "${PIDFILE:-}" -a -r "$PIDFILE" ]; then
	PID=`cat "$PIDFILE"`
	if [ -n "${PID:-}" ]; then
		if $(kill -0 "${PID:-}" 2> /dev/null); then
			echo "running (pid $PID)"
		elif ps "${PID:-}" > /dev/null 2>&1; then
			echo "running (pid $PID)"
		else
			echo "stopped"
		fi
	else
		echo "stopped"
	fi
else
	echo "stopped"
fi
;;
  *)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload|status}" >&2
exit 1
;;
esac

exit 0

Link zu diesem Kommentar
Share on other sites

Ein JAR ist keine ausführbare Datei. Die --exec Option des start-stop-daemons erwartet aber eine ausführbare Datei.

 

Es sollte funktionieren, wenn du

 

DAEMON=/home/pi/FerienHaus.jar
OPTIONS=--daemon

 

durch

 

DAEMON=java
OPTIONS=-jar /home/pi/FerienHaus.jar

 

ersetzt. Unter der Annahme, dass dein FerienHaus.jar einen Main-Class Eintrag im Manifest hat.

Link zu diesem Kommentar
Share on other sites

@ Masder: da habe doch schon mal erste erfolge.

 

allerdings wenn ich das starte über das Terminal dann gibt er mir keine neue Zeile Frei ...

 

@ photron : hat nicht geklappt. :(

 

er gibt dann folgendes raus.

pi@raspberrypi ~ $ /etc/init.d/FerienHaus start
/home/pi/FerienHaus.jar: 1: /home/pi/FerienHaus.jar: PK: not found
/home/pi/FerienHaus.jar: 2: /home/pi/FerienHaus.jar:▒UE: not found
/home/pi/FerienHaus.jar: 3: /home/pi/FerienHaus.jar:UE▒▒vMETA-INF/MANIFEST.MFManifest-Version:: not found
PuTTYPuTTY/home/pi/FerienHaus.jar: 4: /home/pi/FerienHaus.jar: Ant-Version:: not found
/home/pi/FerienHaus.jar: 5: /home/pi/FerienHaus.jar: Syntax error: "(" unexpected

Link zu diesem Kommentar
Share on other sites

Hallo tatzemax,

 

Zu deinem "Fehler" das du keine neue zeile bekomst,

nein das ist kein fehler das ist normal unter linux!

du mus den Prozes extra in den hintergrund verschieben!

Das geht beim aufrufen mit einem "&".

einfach nach dem aufruf das & dran hängen und schon sollte es das gewünste ergebnis bringen.

 

hir mal meine beiden Script da habe ich es auch so gemacht.

 

(myapp)

#!/bin/bash
# myapp
#
case $1 in
    start)
        /bin/bash /home/pi/jar-start.sh
    ;;
    stop)
        /bin/bash /home/pi/jar-stop.sh
    ;;
    restart)
        /bin/bash /home/pi/jar-stop.sh
        /bin/bash /home/pi/jar-start.sh
    ;;
esac
exit 0

 

jar-start.sh

#!/bin/bash

sudo java -jar /home/pi/neu.jar&

 

 

Gruß masder

 

 

Link zu diesem Kommentar
Share on other sites

Das init Script wird als root ausgeführt. Funktioniert Folgendes?

 

sudo java -jar /home/pi/FerienHaus.jar

 

Das Funktioniert einwandfrei.

 

 

 

Hallo tatzemax,

 

Zu deinem "Fehler" das du keine neue zeile bekomst,

nein das ist kein fehler das ist normal unter linux!

du mus den Prozes extra in den hintergrund verschieben!

Das geht beim aufrufen mit einem "&".

einfach nach dem aufruf das & dran hängen und schon sollte es das gewünste ergebnis bringen.

 

hir mal meine beiden Script da habe ich es auch so gemacht.

 

(myapp)

#!/bin/bash
# myapp
#
case $1 in
    start)
        /bin/bash /home/pi/jar-start.sh
    ;;
    stop)
        /bin/bash /home/pi/jar-stop.sh
    ;;
    restart)
        /bin/bash /home/pi/jar-stop.sh
        /bin/bash /home/pi/jar-start.sh
    ;;
esac
exit 0

 

jar-start.sh

#!/bin/bash

sudo java -jar /home/pi/neu.jar&

 

 

Gruß masder

 

 

 

Danke das hat mir schon mal weitergeholfen.

 

Jetzt noch dach der Anleitung http://wiki.ubuntuusers.de/Dienste#bearbeiten

 

und schon läuft es so wie ich mir das vorgestellt habe.

Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...