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
eingebe. pyload wird dann im Hintergrund ausgeführt und das Webinterface ist erreichbar. Auch der Befehl
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
gefolgt vom Eintrag
.
pyload wurde allerdings nicht gestartet.
Es folgten weitere Anpassungen wie beispielsweise
.
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 ) 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:
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
Code:
service pyload start
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
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 ) 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:
- Über cron ein Skript starten, beispielsweise "/home/benutzername/pyload_start.sh".
- 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.
Zuletzt bearbeitet von einem Moderator: