jar-Datei über PHP-Script ausführen

Status
Für weitere Antworten geschlossen.

gender

Benutzer
Mitglied seit
25. Mrz 2012
Beiträge
48
Punkte für Reaktionen
2
Punkte
8
Hallo liebes Forum,

folgendes Problem: Ich möchte eine Jar-Datei auf der Synology in einem Zeitintervall wiederholt ausführen lassen...

Meine bisherige Idee: eine PHP-Script-Datei als cronjob ausführen lassen, während die PHP-Datei die jar-datei ausführt.
Der Cronjob bzw. das Ausführen des PHP-Scriptes klappt bereits.... nur leider wird die jar-datei nicht ausgeführt.

Die PHP-Datei sieht so aus:

Rich (BBCode):
    <?php
    exec('java -jar file.jar', $output);
    print_r($output);
    ?>


Die jar-Datei und die PHP-Datei liegen beide bei mir auf dem Webserver im gleichen Verzeichnis.
Wenn ich die jar-Datei per Hand/Doppelklick ausführe, tut sie, was sie soll.


Hat jemand eine Idee?
Prinzipiell bin ich überhaupt nicht abhängig von der PHP-Datei, es geht mir nur darum, dieses jar-File alle 5 Minuten auszuführen... daher wäre ich auch für andere Vorschläge dankbar.
Mit kam auch noch die Idee, den Java Manager zu installieren.... aber der wird scheinbar für meine Synology (DS 212+) nicht angeboten (bzw. ich finde ihn nicht als Paket).

Danke und viele Grüße
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.020
Punkte für Reaktionen
273
Punkte
393
Hallo,
gib jeweils den kompletten Pfad zu java und zur file.jar an.

Gruß Götz
 

gender

Benutzer
Mitglied seit
25. Mrz 2012
Beiträge
48
Punkte für Reaktionen
2
Punkte
8
Hmmm. aber java läuft doch auf meiner Synology gar nicht....?!
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.020
Punkte für Reaktionen
273
Punkte
393
Hallo,
dann mußt Du es installieren. Ein .jar benötigt java (steht ja auch so hinter exec).

Gruß Götz
 

gender

Benutzer
Mitglied seit
25. Mrz 2012
Beiträge
48
Punkte für Reaktionen
2
Punkte
8
das stimmt.... wenn man drüber nachdenkt, macht das ja auch sinn. Manchmal postet man leider schneller, als man denkt.

Ok, Java habe ich tatsächlich installiert bekommen :)

Jetzt kommt aber die Anschlussfrage:
Die jar-Datei liegt in einem Verzeichnis, also z.B. usr/bin/update.jar

Wenn ich nun per ssh als Kommando java -jar usr/bin/update.jar eingebe, dann wird die jar-Datei korrekt ausgeführt.

Ich habe nun versucht, diesen Befehl als cron-job ausführen zu lassen, also einfach auf das PHP-Skript zu verzichten.
also: */1 * * * * root java -jar usr/bin/update.jar

Leider passiert aber über den Cronjob nichts.
Wo könnte der Fehler liegen? Die jar-Datei erzeugt eine einfache Textausgabe. Ist in Moment aber auch nur provisorisch... könnte ich auch ausschalten.
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.020
Punkte für Reaktionen
273
Punkte
393
Hallo,
Dir fehl nur noch ein / :), also
*/1 * * * * root java -jar /usr/bin/update.jar

Gruß Götz

PS: die Pfadangabe zu java kann auch noch nötig sein.
 

gender

Benutzer
Mitglied seit
25. Mrz 2012
Beiträge
48
Punkte für Reaktionen
2
Punkte
8
Ha super...
das wars.
Ohne Java-Pfad gings auch nicht. Musste also auch noch rein...
Wen es noch interessiert: der komplett korrekte Eintrag als cronjab ist dann

*/1 * * * * root /volume1/@appstore/java8/ejdk1.8.0_06/linux_arm_sflt/jre/bin/java -jar /usr/bin/update.jar


Noch zu Java:
auch wenn es auf den ersten Blick auf der gängigen Seite http://pcloadletter.co.uk/2011/08/23/java-package-for-synology/ so aussieht, als wenn die DS212 (also alle NAS mit Marvell Kirkwood mv6282 2.0Ghz ARM (Marvell ARMADA 300)) icht unterstützt würde:
doch: man braucht das Java embedded "ARMv5 Linux - Headless EABI, SoftFP ABI, Little Endian3". Dieses in einem gemeinsam geteilten Ordner names "public" auf dem NAS ablegen.
Dann das von pcloadletter bzw. die Adresse als Quelle im Paketmanager eintragen und danach die entsprechende Java-Version unter "Communitites" im Paketmanager installieren. Fertig.
 
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