Task im Aufgabenplaner wirft Fehler / selbes Programm lässt sich via Putty problemlos ausführen

chrisu85

Benutzer
Mitglied seit
14. Jun 2021
Beiträge
2
Punkte für Reaktionen
0
Punkte
1
Hallo zusammen.
Ich habe via Talend Open Studio ein kleines JAVA Programm gebaut, welches ich nun zyklisch auf meiner Synology (DSM 6.2.4) laufen lassen möchte.
Grundsätzlich lässt sich das Programm ausführen, wenn ich mich als "admin" mittels SSH (putty) auf der synology anmelde, den Pfad auswähle und dann via "./... .sh" das Skript laufen lasse.
/var/services/web/talend.jobs/RUN_GET_PlayerInfo/GET_PlayerInfo$ ./GET_PlayerInfo_run.sh
Wenn ich den genau selben Pfad im Aufgabenplaner mit dem selben Profil (admin) ausführen lasse, bekomme ich eine Fehlermeldung, die für mich auf Probleme mit JAVA deuten.
/var/services/web/talend.jobs/RUN_GET_PlayerInfo/GET_PlayerInfo/GET_PlayerInfo_run.sh: line 4: java: command not found
Habe in PROFILE auch schon geschaut, ob hier die JAVA Enviroment Variablen auch gesetzt sind und sieht für mich soweit iO aus.
PATH=$PATH:/var/packages/Java8/target/j2sdk-image/bin # Synology Java runtime enviroment
PATH=$PATH:/var/packages/Java8/target/j2sdk-image/jre/bin # Synology Java runtime enviroment
JAVA_HOME=/var/packages/Java8/target/j2sdk-image/jre # Synology Java runtime enviroment
CLASSPATH=.:/var/packages/Java8/target/j2sdk-image/jre/lib # Synology Java runtime enviroment
LANG=en_US.utf8 # Synology Java runtime enviroment
export CLASSPATH PATH JAVA_HOME LANG # Synology Java runtime enviroment
Das ist der Inhalt der .sh-Datei (diese habe ich aber nicht selbst geschrieben, sondern ist das Ergebnis des Deployments aus Talend heraus).
#!/bin/sh
cd `dirname $0`
ROOT_PATH=`pwd`
java -Dtalend.component.manager.m2.repository=$ROOT_PATH/../lib -Xms256M -Xmx1024M -cp .:$ROOT_PATH:$ROOT_PATH/../lib/routines.jar:$ROOT_PATH/../lib/log4j-slf4j-impl-2.12.1.jar:$ROOT_PATH/../lib/log4j-api-2.12.1.jar:$ROOT_PATH/../lib/log4j-core-2.12.1.jar:$ROOT_PATH/../lib/log4j-1.2-api-2.12.1.jar:$ROOT_PATH/../lib/commons-collections-3.2.2.jar:$ROOT_PATH/../lib/mariadb-java-client-2.5.3.jar:$ROOT_PATH/../lib/jboss-serialization.jar:$ROOT_PATH/../lib/json-path-1.2.0.jar:$ROOT_PATH/../lib/crypto-utils-0.31.11.jar:$ROOT_PATH/../lib/advancedPersistentLookupLib-1.2.jar:$ROOT_PATH/../lib/jersey-core-1.4.jar:$ROOT_PATH/../lib/slf4j-api-1.7.25.jar:$ROOT_PATH/../lib/accessors-smart-1.1.jar:$ROOT_PATH/../lib/dom4j-2.1.3.jar:$ROOT_PATH/../lib/jersey-client-1.4.jar:$ROOT_PATH/../lib/trove.jar:$ROOT_PATH/../lib/json-smart-2.2.1.jar:$ROOT_PATH/get_playerinfo_2_0.jar: local_project.get_playerinfo_2_0.GET_PlayerInfo --context=Default "$@"

Irgendwelche Ideen woran das liegen kann? Infos die zur genaueren Nachvollziehbarkeit noch gebraucht werden?
Mache hier jetzt schon bald eine Woche rum - ohne dass wirklich weiter gekommen bin.
 

Puppetmaster

Benutzer
Sehr erfahren
Mitglied seit
03. Feb 2012
Beiträge
18.991
Punkte für Reaktionen
629
Punkte
484
Code:
line 4: java: command not found

Sagt doch eigentlich schon klar, dass das Kommando 'java' unbekannt ist.
Gibt doch mal den kompletten Pfad in dem Skript an.
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.102
Punkte für Reaktionen
3.919
Punkte
488
Das ist der häufigste Fehler, der bei Scripten oft gemacht wird.
Bei der Ausführung eines Scripts über den Aufgabenplaner wird /etc/profile und ~\.profile im Gegensatz zur interaktiven Anmeldung nicht durchlaufen.
Nimm einfach die wichtigsten Dinge daraus (z.B. PATH, JAVA_HOME, ...) mit in dein Script auf oder "source" es innerhalb deines Scripts, z.B.
Code:
#!/bin/sh
. /etc/profile
...
Der Punkt ist sowas wie ein Include. Achte auf das Leerzeichen dahinter.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: chrisu85

Puppetmaster

Benutzer
Sehr erfahren
Mitglied seit
03. Feb 2012
Beiträge
18.991
Punkte für Reaktionen
629
Punkte
484

synfor

Benutzer
Sehr erfahren
Mitglied seit
22. Dez 2017
Beiträge
9.267
Punkte für Reaktionen
1.694
Punkte
308
Anhängen? Das muss an den Anfang deines Scripts!
 

Puppetmaster

Benutzer
Sehr erfahren
Mitglied seit
03. Feb 2012
Beiträge
18.991
Punkte für Reaktionen
629
Punkte
484
Muss? Es funktioniert doch!
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.102
Punkte für Reaktionen
3.919
Punkte
488
Ich denke, @chrisu85 hat es schon richtig verstanden, aber sich etwas unglücklich ausgedrückt.
 

Puppetmaster

Benutzer
Sehr erfahren
Mitglied seit
03. Feb 2012
Beiträge
18.991
Punkte für Reaktionen
629
Punkte
484
Natürlich war es so, aber es waren offenbar wieder ein paar Korinthen übrig. ;)
 
Zuletzt bearbeitet:


 

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