pyload auf Ubuntu bei Systemstart/Reboot starten funktioniert nicht

E

Ehemaliger Benutzer

Gast
Gibts hier zufällig jemand mit Python- und Linux-Erfahrung?

Ich habe ein kleines Problem mit dem Programm pyload. Dieses kann ich problemlos starten, wenn ich mich per SSH auf meinem Server anmelde und
Code:
pyLoadCore --daemon
eingebe. pyload wird dann im Hintergrund ausgeführt und das Webinterface ist erreichbar. Auch der Befehl
Code:
service pyload start
funktioniert.

Schön wäre es allerdings, wenn das auch automatisch beim Systemstart, besser gesagt nach jedem Boot-Vorgang, passieren würden.
Der erste Versuch war einfach
Code:
sudo crontab -e
gefolgt vom Eintrag
Code:
@reboot pyLoadCore --daemon
.
pyload wurde allerdings nicht gestartet.
Es folgten weitere Anpassungen wie beispielsweise
Code:
@reboot /usr/bin/python /usr/share/pyload/pyLoadCore.py --daemon
.
Aber auch das funktioniert nicht. Zum Schluss habe ich noch probiert, die funktionierenden Terminal-Befehle in ein Shell-Script auszulagern und dieses per cron zu starten. Das Ergebnis: Wieder nichts.

Es kann doch nicht so schwer sein, ein Python-Programm zu starten! Oder doch?

Ach ja: Das Server-Betriebssystem ist Ubuntu 12.04. Der Standard-Nutzer, der beim Hochfahren automatisch eingeloggt wird, lautet Blubber (Name geändert :p) und über SSH melde ich mich mit einem anderen Benutzer an. Allerdings scheint der Benutzer nicht das Problem zu sein. Zumindest konnte ich gerade als Blubber pyload problemlos im Terminal starten.

Lösung:
Inzwischen habe ich die Lösung gefunden! Das Problem war, dass pyload scheinbar irgendein Problem mit dem Konfigurationsordner hat, wenn der ausführende Benutzer nicht derjenige ist, in dessen Home-Verzeichnis die Konfiguration liegt.
Um das etwas zu verständlicher auszudrücken: Auf meinem System gibt es mehrere Benutzer, nennen wir sie mal A, B und root. Bei der Installation von pyload habe ich als Konfigurations-Verzeichnis einen Ordner unterhalb von "/home/A" angegeben. Gestartet werden soll pyload aber als cronjob von root. Und das scheint irgendwie nicht einfach so möglich zu sein. Vermutlich sucht pyload im Home-Verzeichnis des ausführenden Benutzers nach der Konfiguration, welche sich normalerweise unter /home/benutzername/.pyload befindet.

Die Lösung ist daher denkbar einfach:
  1. Über cron ein Skript starten, beispielsweise "/home/benutzername/pyload_start.sh".
  2. Das Skript enthält den Befehl "pyLoadCore --daemon --configdir=/home/benutzername/.pyload". Die Angabe bei "--configdir" muss natürlich entsprechend angepasst werden und schon funktioniert das Ganze.
Warum es mir allerdings möglich war/ist, über das Terminal pyload problemlos per "pyLoadCore --daemon" (also ohne configdir) mit dem Benutzer B auszuführen, ist mir schleierhaft.
 
Zuletzt bearbeitet von einem Moderator: