Jdownloader headless on Raspberry Pi

Old: Mount remote SMB (via SSH):
http://geeks.noeit.com/mount-an-smb-network-drive-on-raspberry-pi/
using:
//192.168.x.x/JDownloader /media/smb/JDownloader cifs username=xxx,password=xxx,rw,file_mode=0777,dir_mode=0777 0 0
plus activate “Wait for network at boot” via raspi-config

Update: Mount remote SMB (via SSH):
I changed to using AutoFS to mount my NAS share, because it seems to be more stable/reliable. Using the fstab approach lost connection sometimes (maybe because of standby of NAS or short connection break).
https://anteru.net/2014/09/20/2480/

Install Jdownloader (via SSH):
sudo apt-get install oracle-java8-jdk
mkdir jdownloader
cd jdownloader
wget http://installer.jdownloader.org/JDownloader.jar
java -Djava.awt.headless=true -jar JDownloader.jar

(wait a loooong time until updates have been installed and JDownloader tells you that it has restarted itself…)

Kill process using shown PID (message of restart after updates installed).

Insert email and password of your MyJDownloader login:

sudo nano /home/pi/jdownloader/cfg/org.jdownloader.api.myjdownloader.MyJDownloaderSettings.json

Restart and check, if it appears in your http://my.jdownloader.org/

Create init-scrip
sudo nano /etc/init.d/jdownloader
insert

#! /bin/sh
### BEGIN INIT INFO
# Provides: jDownloader2
# Required-Start: networking
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: jDownloader2 Server Daemon
# Description: jDownloader2 Server Daemon
### END INIT INFO

DIR=”/home/pi/jdownloader”
PIDFILE=”$DIR/JDownloader.pid”
JAVA=”/usr/lib/jvm/jdk-8-oracle-arm-vfp-hflt/jre/bin/java”
PARAM=”-Djava.awt.headless=true -jar $DIR/JDownloader.jar”

start_daemon () {
start-stop-daemon –start –background –oknodo –chuid pi –group pi –make-pidfile –pidfile $PIDFILE –exec $JAVA — $PARAM
}

stop_daemon () {
start-stop-daemon –stop –pidfile $PIDFILE
}

#Switch case fuer den ersten Parameter
case “$1” in
start)
#Aktion wenn start uebergeben wird
echo “Starte jDownloader2”
start_daemon
;;

stop)
#Aktion wenn stop uebergeben wird
echo “Stoppe jDownloader2”
stop_daemon
;;

restart)
#Aktion wenn restart uebergeben wird
echo “Restarte jDownloader2”
start_daemon
stop_daemon
;;
*)
#Standard Aktion wenn start|stop|restart nicht passen
echo “(start|stop|restart)”
;;
esac

exit 0

Install init.d with defaults

sudo systemctl daemon-reload
sudo systemctl enable jdownloader

16 thoughts on “Jdownloader headless on Raspberry Pi

  1. Hallo Kai,
    danke, endlich eine Anleitung für eine Headless-Installation. 😀
    Als Linux-Anfänger möchte ich doch mal nachfragen:
    Wozu dient das mounten des Samba-Laufwerks? Im Rest der Anleitung sehe zumindest ich zunächst keinen weiteren Gebrauch/Bedarf dafür. Eingebunden wird es als “JDownLoader”, im weiteren Verlauf der Anleitung : “sudo nano /home/pi/jdownloader” und im init-script: “DIR=”/home/pi/jdownloader” wird jedoch das Verzeichnis “jdownloader benutzt. Für mich sind das ja aufgrund der Schreibweise 2 verschiedene Orte.

    Hintergrund ist, ich würde gern das auf dem Cubietruck nachvollziehen, dort laufen jedoch bereits Samba, apache2, Baikal, syncthing, ProFTPd und MySQL.

    Nichts desto trotz, einen dicken Dank für die Anleitung,
    Andreas

    • Hallo Andreas,

      das Samba-Laufwerk ist die Netzwerkfreigabe auf meinem NAS in den Jdownloader herunterlädt. Dieser Pfad wird über das MyJdownloader Interface eingestellt (Zielverzeichnis) und taucht daher in dieser Anleitung nicht auf.

      VG
      Kai

  2. Danke für die Anleitung. Auf was für einem Pi hast du den jD denn laufen? Mich würde mal interessieren wie der footprint vom jD im headless modus auf dem Pi aussieht. Würde ihn gerne auf meinem Pi2 mit Kodi+Sickrage laufen lassen.

    • Hallo Manu,

      JDownloader läuft bei mir auf einem Raspi2 (zusammen mit FHEM).
      Ich kann dir adhoc nicht sagen, wieviel RAM/CPU er so braucht. Insbesondere das Entpacken der Archive zieht natürlich so viel es kann…

      VG
      Kai

  3. Hey Kai,
    ich bin noch nicht so bewandert mit Skripten, ich nehme mal an, dass das Skript mit “exit 0” endet. Wie führe ich dann die letzten 3 Befehle aus?

    • Hi Phillipp,

      das gehört bis exit 0 alles in die Datei /etc/init.d/jdownloader rein.

      Dann die beiden Kommandos manuell ausführen:
      sudo systemctl daemon-reload
      sudo systemctl enable jdownloader

      VG
      Kai

      • die Datei jdownloader muss man noch ausführbar machen.
        sudo chmod +x /etc/init.d/jdownloader

        und dann diese Zeilen ausführen:
        sudo systemctl daemon-reload
        sudo systemctl enable jdownloader

  4. HI Kai,
    vielen Dank erstmal für die super Anleitung!

    Habe beim letzen Schritt folgendes Problem:

    sudo systemctl daemon-reload
    sudo systemctl enable jdownloader

    Synchronizing state for jdownloader.service with sysvinit using update-rc.d…
    Executing /usr/sbin/update-rc.d jdownloader defaults
    insserv: script jdownloader is not an executable regular file, skipped!
    Executing /usr/sbin/update-rc.d jdownloader enable
    update-rc.d: error: no runlevel symlinks to modify, aborting!

    Ich hab gesehen das sich der Pfad geändert hat:
    JAVA=”/usr/lib/jvm/jdk-8-oracle-arm-vfp-hflt/jre/bin/java”
    zu
    JAVA=”/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre/bin/java”

    Ich habe den Pfad getested wenn ich ihn versuche zu öffnen kommt folgendes:
    -bash: cd: /usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre/bin/java: Ist kein Verzeichnis

    Kannst du mir bitte weiterhelfen, wo der Fehler liegt?

    Vielen Dank!

    Grüße
    BM

    • Hast du mal ein ls auf den Pfad gemacht und reingeschaut in den Ordner?
      Ist das ggf. ein Symlink?

      Ich hatte auch mal das Problem und musste etwas rumsuchen bis ich den tatsächlichen Pfad hatte… finde die Lösung nicht mehr.
      Hatte es aber mit etwas Googeln rausbekommen.

    • die Datei jdownloader muss man noch ausführbar machen.
      sudo chmod +x /etc/init.d/jdownloader

      und dann diese Zeilen ausführen:
      sudo systemctl daemon-reload
      sudo systemctl enable jdownloader

  5. Vielen dank für die ausführliche Anleitung 🙂
    Habe das ganze auf meinem Pi 2 unter OSMC zum laufen bekommen. So bin ich nicht auf Dualboot mit Raspian angewiesen.

    Gruß

  6. Servus,

    /etc/init.d/jdownloader: 15: /etc/init.d/jdownloader: -jar: not found
    /etc/init.d/jdownloader: 47: /etc/init.d/jdownloader: Syntax error: “(” unexpected (expecting “;;”)

    Kannst mir sagen wo der Fehler liegt?

Leave a reply to Sarah Kuhn Cancel reply