Seiten

Samstag, 3. März 2012

JDownloader Webinterface als Windows Service im Hintergrund starten


Wer kennt ihn nicht, den JDownloader. Ein großartiges Tool zum Download von diversen Filehostern oder Videos von Youtube. Leider hat dieser einen großen Nachteil. Er benötigt zum Starten Adminrechte und einen eingeloggten Nutzer. Dies ist nicht so günstig, wenn er auf einem Server betrieben werden soll, wo sich mehrere Benutzer einloggen, davon aber keiner Adminrechte hat. Jetzt bietet sich natürlich das Webinterface, wo jeder Benutzer seine gewünschten Downloads eintragen kann, was aber immer noch einen eingeloggten Adminbenutzer benötigt.
Von Haus aus bietet der JDownloader leider keine Möglichkeit ihn als Windows-Service automatisch zu starten, aber dafür gibt es Abhilfe:

Vorraussetzung ist natürlich der JDownloader mit eingerichtetem Webinterface. Einfach in den Plugins aktivieren und JD neu starten. Danach sollte standardmäßig unter http://localhost:8765 (User: JD, Pass: JD) das Webinterface sichtbar sein. Meine Anleitung basiert auf einem Windows 7 (32-Bit), sollte aber für jedes andere Windows genauso funktionieren. Ebenso muss ein aktuelle Java Runtime installiert sein. Die mit JDownloader ausgelieferte Version hat bei mir dazu geführt, dass der Service nicht startet bzw. hängen bleibt. Meine Vermutung ist, dass die javaw.exe nicht im PATH vorhanden ist. Eine aktuelle Java Runtime gibt es bei Oracle und löst das Problem automatisch.

Um den JDownloader als Service einzurichten benötigt man die Tools srvany.exe und instsrv.exe,die im Windows Server 2003 Resource Kit verfügbar sind. Einfach Downloaden und installieren. Bei der Installation kommt leider unter neueren Betriebssystemen eine Fehlermeldung, die Tools, die wir benötigen funktionieren aber trotzdem:

In der folgenden Anleitung wird davon ausgegangen, dass der JDownloader unter  
C:\Program Files\JDownloader\ und das Resource Kit unter C:\Program Files\Windows Resource Kits\Tools installiert sind.

Zuallererst beenden wir den JDownloader. Nun starten wir die Kommandozeile als Administrator und navigieren zum Resource Kit:

cd /d "C:\Program Files\Windows Resource Kits\Tools"
   (Anführungszeichen nicht vergessen!!!)


Hier nutzen wir nun instsrv und srvany, um einen Dienst anzulegen. Als Namen nutze ich JD, dieser ist aber frei wählbar. Der Pfad zu srvany muss mit Ordner angegeben werden:


instsrv.exe JD "c:\Program Files\Windows Resource Kits\Tools\srvany.exe"


Im Anschluss müssen wir noch srvany sagen, welches Programm gestratet werden soll. Das geht leider nur über die Registry. Dazu muss ein Schlüssel Parameters angelegt unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\JD\ angelegt werden. Dazu folgendermaßen vorgehen:

  • Regedit starten: Nach Regedit im Windows-Menü suchen und als Administartor ausführen
  • Auf der linken Seite zum Schlüssel HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\JD\ navigieren (JD ist der Name des Service den wir angegeben haben)
  • Neuen Schlüssel anlegen: Auf JD mit der rechten Maustaste -> Neu -> Schlüssel. Der neue Schlüssel heißt Parameters
  • Auf der rechten Seite eine neue Zeichenfolge anlegen: rechte Maustaste -> Neu -> Zeichenfolge
    (Name: Application; Wert:  C:\\Program Files\\JDownloader\\JDownloader.exe). Die doppelten Anführungszeichen sind kein Fehler, sondern müssen vorhanden sein.
  • Im Anschluss sollte das dann  so aussehen:

Nun kann der Service gestartet werden. Dazu im Windows Ausführen-Dialog (Win+R)  services.msc eingeben:



Der Dienst JD sollte vorhanden sein und kann gestartet werden:


Wenn alles geklappt hat sollte jetzt wie gewohnt unter http://localhost:8765 das Webinterface erreichbar sein.

Nun müssen wir den Dienst noch so konfigurieren, dass er immer startet auch wenn kein Nutzer angemeldet ist. Dazu einfach den Service doppelt anklicken und überprüfen, ob der Starttyp auf "Automatisch" steht. Dies sollte Standard sein. Im zweiten Reiter "Anmeldung" muss nun noch das Administratorkonto für die Anmeldung angegeben werden. Das sollte das Konto sein mit dem der JD gestartet und eingerichtet wurde:


Zur Sicherheit kann man den Service nun noch einmal neu starten und überprüfen, ob das Webinterface erreichbar ist. Alle Einstellungen sind nun fertig und nach einem Neustart startet der Service automatisch und ist über das Webinterface nun auch von anderen Rechnern aus ohne Windows-Login erreichbar. 

Voila:



Hinweis: Je nach Konfiguration kann es noch notwendig sein eine Firewallausnahme für den JDownloader einzutragen.

Mein Folgeartikel zum JDownloader kann euch dabei helfen alle AGBs auf einen Rutsch zu bestätigen.


Kommentare:

  1. Bei mir bleibt JD auch aktiv wenn ich den Dienst stoppe (javaw.exe und Webinterface laufen noch). Allerdings läuft es bei mir unter dem SystemKonto und es ist ein Win2K8 R2. Das Problem auch schon gehabt?

    AntwortenLöschen
  2. Hallo,

    ich hatte mehrere Probleme mit dem Systemkonto, da dies unter neueren Windows-Versionen kein "richtiges" Konto ist. Zum Bsp. gibt es Probleme mit der Firewallausnahme, Home-Verzeichnis, Umgebungsvariablen, etc., deshalb erschien es mir besser gleich mit dem Konto zu starten das auch den JD komplett eingerichtet hat. Ich denke, wenn du das umstellst wird dies auch dein Problem lösen. Sonst sind fehlerhaft gestartete/gestoppte Services auch im Ereignisprotokoll sichtbar.

    Gruß,
    Danny

    AntwortenLöschen
  3. Super Anleitung, Danke!
    Hat auf Windows Home Server 2011 funktioniert.

    Gibt es noch eine Möglichkeit, wenn JD als Service läuft irgendwie die GUI trotzdem zu laden? Wäre schön, da ich oft eine Remotedesktopverbindung zum Server nutze.

    mfg RockNLol
    elegost_gore@hotmail.com

    AntwortenLöschen
  4. Hallo RockNLol,

    parlallel wird das leider nicht funktionieren. Du könntest aber den Dienst beenden und dann JD ganz normal (aus dem Ordner) starten, dann sollte auch die GUI sichtbar sein.

    Viele Grüße,
    Danny

    AntwortenLöschen
  5. Super vielen Dank für den Artikel! Hat bei mir wunderbar funktioniert!

    Allerdings habe ich JDownloader 2 auf einem Windows Server 2012 Essentials verwendet . Die Erstellung des Services hat klappt, allerdings musste der Pfad noch mit x86 ergänzt werden, da ich ein 64bit System verwende.
    Der richtige Pfad wäre dann:

    C:\Program Files (x86)\Windows Resource Kits\Tools
    C:\Program Files (x86)\JDownloader v2.0

    Bei der Installation von JDownloader 2 müsst Ihr den Programm Pfad bei der Installation anpassen, sonst wird das Programm in eurem Benutzerprofil installiert.

    Ansonsten könnt Ihr genauso wie in der Anleitung beschrieben vorgehen. Allerdings braucht Ihr kein Webinterface mehr aktivieren. Geht meines Wissens auch mit der neuen Version nicht mehr. Ihr habt jedoch die Möglichkeit über my.jdownloader.org euch direkt mit eurem JDownloader zur verbinden. Das geht auch per Smartphone App und über jeden X beliebigen Browser!
    Dank des Services brauch auch kein Benutzer am System angemeldet sein!

    Klappt 1A!

    Viele Grüße
    Tim

    AntwortenLöschen