PyLoad

Aus

Allgemeine Informationen

pyLoad ist ein Download-Manager für One-Click-Hoster.

Voraussetzungen

  • Zugriff auf das NAS per Kommandozeile muss aktiviert sein
  • IPKG muss installiert sein, am besten mit der erweiterten Startup/Shutdown Variante

Installation

Die nötigen Installationsschritte sind einem Beitrag im englischen QNAP-Forum entnommen.

Zugriff auf das NAS per Kommandozeile

Benötigte Tools installieren

ipkg install screen nano wget unzip unrar

Python und Abhängigkeiten installieren

ipkg install python py25-crypto py25-curl libcurl py25-openssl py25-django py25-pil tesseract-ocr tesseract-ocr-lang-eng ossp-js

pyLoad herunterladen

0.4.3 ist die aktuelle Version (Stand 26.11.10)

cd /opt
wget http://get.pyload.org/get/src/0.4.3/
unzip-unzip pyload-src-v0.4.3.zip
rm pyload-src-v0.4.3.zip
cd pyload/

Konfiguration

Das Konfigurationsverzeichnis (hier werden auch die Downloads gespeichert) sollte geändert werden, z.B. /volume1/pyload

cd module/config/
echo "/volume1/pyload" >> configdir

pyLoad ausführbar machen

chmod +x /opt/pyload/pyLoadCore.py

pyLoad starten

python /opt/pyload/pyLoadCore.py

Beim ersten Aufruf erscheint der Konfigurations-Assistent, die Einrichtung ist relativ selbsterklärend und gut beschrieben.

Eine möglichkeit PyLoad starten zu lassen ist mit screen pyLoad im Hintergrund laufen lassen

screen -dmS python /opt/pyload/pyLoadCore.py

Dies verhindert den Abbruch des Programms beim Beenden der Kommandozeile

Automatisches Startup/Shutdown

Um dafür zu sorgen, dass beim Startup und Shutdown der DS PyLoad automatisch gestartet und gestoppt wird, sollte IPKG in der erweiterten Variante ohne Mount Bind und mit erneuertem Startup/Shutdown Script installiert worden sein. Vor der weiteren Konfiguration für das Start / Stop Script, sollte dafür gesorgt werden, daß PaLoad nicht mehr gestartet ist.

Danach legt man nachfolgendes Script unter /opt/etc/init.d/S99pyload ab. Ausführbar machen mit chmod +x /opt/etc/init.d/S99pyload nicht vergessen! Jetzt wird getestet, ob sich PyLoad mittels /opt/etc/init.d/S99pyload start sauber starten lässt. Sobald PyLoad sauber gestart werden kann, testet man auch gleich noch mittels /opt/etc/init.d/S99pyload stop, ob PyLoad auch wieder sauber beendet wird. Nach dem Stop darf per ps | grep python kein Prozess mehr sichtbar sein.

#!/bin/sh
#
# Start / Stop Script for PyLoad http://localhost:8000
#
prefix="/opt"
PATH=${prefix}/bin:${prefix}/sbin:/sbin:/bin:/usr/sbin:/usr/bin
NAME="PyLoad"
DAEMON="python /opt/pyload/pyLoadCore.py --daemon"
DAEMON_OPTS=""
#
#
start() {
       echo "Starting Service: $NAME"
       $DAEMON $DAEMON_OPTS | awk '{print $3}' >/var/run/pyload.pid
}
#
stop() {
       kill `cat /var/run/pyload.pid`
}
#
case "$1" in
       start)
               start
               ;;
       stop)
               stop
               ;;
       restart)
               stop
               sleep 4
               start
               ;;
       *)
               echo "Usage: $0 (start|stop|restart)"
               exit 1
               ;;
esac
#
# End

Wenn das Script aktiv ist, sollte man nicht vergessen, dass das Script die PID des PyLoad Prozesses speichert, um anhand dieser PID beim Stoppen den PyLoad Prozess zu beenden. Wenn jetzt also jemand "von Hand" die PyLoad Prozesse Stopt und Startet, dann kann das Script nicht mehr sauber funktionieren. Daher, ab sofort am besten nur noch das Pyload Start/Stop Script für das Starten und Stoppen von PyLoad verwenden. Für Tests, wird am besten das Script mit "stop" aufgerufen, dann getestet und alle PyLoad Prozesse wieder beendet, um dann mit dem Script und dem "start" Parameter alles wieder sauber zu starten.

Warum ist das Stoppen von PyLoad beim Shutdown so wichtig? Weil ansonsten die DS nicht sauber heruntergefahren werden kann, bzw. unter umständen sogar hängen bleibt und sich nicht abschalten kann. Wer also beim abschliessenden Test feststellen sollte, daß die DS nicht sauber herunterfährt, der hat etwas falsch gemacht und sollte noch mal sorgfälltig alle Schritte prüfen und niemals vergessen jeden Schritt auch noch einmal zu testen.

Debugging/Fehlersuche

Ist leider nicht ganz so einfach. Daher sollte immer vor dem Einsatz der Start / Stop Scripte sichergestellt sein, dass PyLoad auch auf der Commandozeile einwandfrei läuft. Ansonsten muss man sich mit "echo" Befehlen und der Umleitung in ein Logfile behelfen, welche man so plaziert, dass man erahnen kann, was die Scripte gerade getan haben.

Noch eine Alternative ist doch noch einmal Screen zum Start von PyLoad zu nutzen und nach dem Start der DS sich in Screen einzuklinken, um wenigstens ein paar (Fehler)Meldungen mitzubekommen. PyLoad selbst hat auch noch einen Debug Switch -d welcher weiterhelfen könnte. Die Schwierigkeit liegt aber immer darin, dass man die Debug Meldungen ja beim Reboot erst mal nicht zu sehen bekommt und diese daher in eine Datei umleiten müsste, um überhaupt etwas zu sehen bekommen.

Weblinks