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

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

chrisu85

Benutzer
Registriert
14. Juni 2021
Beiträge
2
Reaktionspunkte
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.
 
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.
 
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
Anhängen? Das muss an den Anfang deines Scripts!
 
Muss? Es funktioniert doch!
 
Ich denke, @chrisu85 hat es schon richtig verstanden, aber sich etwas unglücklich ausgedrückt.
 
Natürlich war es so, aber es waren offenbar wieder ein paar Korinthen übrig. ;)
 
Zuletzt bearbeitet:
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