delphinis
Posts: 4
Joined: Thu Feb 07, 2019 8:49 pm

.jar datei autostarten

Thu Feb 07, 2019 9:56 pm

Hallo,
ich möchte eine Anwendung mit GUI nach einem (re)boot des Systems automatisch starten lassen.
Dabei hab ich schon jede menge ausprobiert und nichts hat geklappt:
- /etc/rc.local
- crontab
- home/pi/.config/autostart/configpanel.desktop
- andere
aber nichts funktioniert!

So starte ich das Programm "sds.jar" in der Konsole
Normalerweise öffne ich die Konsole und wechsle ins Arbeitsverzeichnis des Programmes:

[email protected]:~ $ cd sds

Dann starte ich das Programm mit sudo recht:
sudo java -jar sds.jar

Wer weiss rat, und wer kann mir ein bisschen detailliert sagen, in welche Datei ich was eintragen muss?
(Für nicht linux-freaks ist es manchmal schwierig mit abgekürzten aussagen was anzufangen)

Vielen Dank schon mal zum Voraus :-)

holgerble
Posts: 30
Joined: Wed Mar 23, 2016 4:15 pm

Re: .jar datei autostarten

Sat Feb 09, 2019 2:09 pm

Hast Du immer KOMPLETTEN ABSOLUTEN Pfad eingetragen ????
Sonst geht das nicht !!

delphinis
Posts: 4
Joined: Thu Feb 07, 2019 8:49 pm

Re: .jar datei autostarten

Sat Feb 09, 2019 2:39 pm

hallo holgerble,
danke für die Antwort.
Bin gerade dabei eine service-Datei zu kreieren:
sds.service in /etc/systemd/system:

hier mein Datei:

Code: Select all

[Service]
WorkingDirectory=/home/pi/sds
ExecStart=sudo java -jar /home/pi/sds/sds.jar
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=SensDataServer
User=root
Group=root
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
da das ganze nicht funktioniert hat hab ich mit

Code: Select all

systemd-analyze verify sds.service
das file analysieren lassen und da sagt es auch etwas mit absoluten pfaden.
Diese hab ich aber angegeben. oder muss ich für sudo und java auch noch absolute pfade angeben und wenn ja welche für sudo?

hier mal der Output von verify:

Code: Select all

Configuration file /etc/systemd/system/./sds.service is marked executable. 
Please remove executable permission bits. Proceeding anyway.
[/etc/systemd/system/./sds.service:3] Executable path is not absolute, 
ignoring: java -jar /home/pi/sds/sds.jar
sds.service: Service lacks both ExecStart= and ExecStop= setting. Refusing.
sds.service: Failed to create sds.service/start: Unit sds.service is not loaded properly: 
Das Argument ist ungültig.

smartifahrer
Posts: 827
Joined: Sat Feb 13, 2016 8:10 am

Re: .jar datei autostarten

Sat Feb 09, 2019 6:19 pm

Ich min kein Linux Fachmann, aber etwas in der Ausgabe kommt mir seltsam vor

Code: Select all

/etc/systemd/system/./sds.service
Ich meine den Punkt zwischen system/./sds. Ich denke da ist was faul.

Den Hinweis "Please remove executable permission bits" würde ich auch angehen.
PHP-Entwickler, Elektroniker, Technik-Bastler. 5 Raspis mit Rasbian, Retropi und Libreelec.

fbe
Posts: 465
Joined: Thu Aug 17, 2017 9:08 pm

Re: .jar datei autostarten

Sat Feb 09, 2019 7:42 pm

"system/./sds.service" und "system/sds.service" sind das gleiche. Davon musst Du Dich nicht beirren lassen.

Das "Executable path is not absolute" wird sich wohl auf "sudo" beziehen. Mit

Code: Select all

which sudo
könntest Du Dir anzeigen lassen, was aufgerufrn wird, wenn du sudo ohne Pfadangabe an der Kommandozeile aufrufst. "java" ist auch keinen absolute Pfadangabe wird aber wahrscheinlich bei der Prüfung nicht bewertet.

Der systemd läuft ohnehin mit root-Rechten. Die Angabe "User=root" ist eigentlich überflüssig, aber nicht sinnlos. Immerhin wird man so dran erinnert, dass man auch was Anderes festlegen könnte. Ein sudo hinterherzuwerfen ist aber schon ungewollt komisch.

Falls das Ding Dein GUI ist, dann ist das Problem höchstwahrscheinlich, dass es nicht weiß, wo es hinsoll. GUI setzt ja voraus dass ein User da ist und eine Konsole oder einen Desktop hat. Ein Service läuft aber im Hintergrund und hat das nicht.

Ist das Dein GUI, was da starten soll? Ist es grafisch, also Fenster, Buttons u.s.w., oder ist es was für Konsole/Terminal?
Benutzt Du Deinen Raspberry Pi mit eigenem Monitor und Tastatur/Maus oder arbeitest Du über VNC, Remote Desktop oder ssh/PuTTY?

Return to “Deutsch”