Seite 1 von 1
FreeNAS Autostart geht nicht
Verfasst: 05.08.2011, 16:18
von AG1M
Hallo,
ich nutze FreeNAS 0.7.2 (FreeBSD 7.3-RELEASE-p6), habe soweit alles eingestellt und hinbekommen wie ich es benötige.
Ich habe auch die aktuelle Version von PyLoad (4.0.3) installieren können und es funktioniert alles soweit so gut. Nur der Autostart von PyLoad geht nicht.
Wenn ich per SSH PyLoad mit
per Hand starte -> kein Problem.
Wenn ich PyLoad im Webinterface (Befehl ausführen) mit
per Hand starte -> kein Problem.
Habe auch schon im Menüpunkt Befehlsscript das ganze eingefügt:
Geht nicht, kein Autostart.
Dann habe ich einen Cronjob eingerichtet:
Geht nicht, kein Autostart. Das verrückte ist aber, wenn ich auf " Jetzt ausführen" klicke, dann startet PyLoad
Weiß da jemand was ich eintragen muss, das der Autostart auch wirklich geht?
Wäre für Ratschläge sehr dankbar
Verfasst: 05.08.2011, 16:34
von pawlak
Liegt /usr/home/spoob-pyload-tip/pyLoadCore.py auf einer anderen Partition, die zu diesem Zeitpunkt noch nicht eingehängt ist? Sonst wüsste ich auch nichts, kenne freenas aber auch nicht.
Verfasst: 05.08.2011, 16:49
von AG1M
Nein es gibt nur eine Partition wo alles liegt. Ich verstehe es einfach nicht was ich falsch mache :/
Verfasst: 06.08.2011, 07:11
von fame
Kenn mich leider mit Freenas wenig aus, aber wo genau wird das Postinit denn ausgefuehrt? Weisst du das zufaellig?
Ansonsten koenntest du mal folgendes versuchen:
Code: Alles auswählen
/usr/home/spoob-pyload-tip/pyLoadCore.py --daemon &> /tmp/load.txt
Wenn nach dem Hochfahren die Datei /tmp/load.txt vorhanden ist: Reingucken was drinsteht. Wenn sie nicht vorhanden ist wird der Befehl nicht ausgefuehrt. Dann wuerde ich mal herrausfinden an welcher Stelle Freenas das Postinit Zeug ausfuehrt und nachgucken was da schiefgeht.
Verfasst: 06.08.2011, 12:35
von wildtollwut
Kann man pyload nicht "richtig" als Paket installieren? Dann könntest du es per
starten und in die rc.conf eintragen. Dann sollte der Start klappen. Ansonsten könnte ich mir noch ein Rechteproblem vorstellen, oder daß es gestartet wird, bevor das Netzwerk initialisiert ist o.ä.
Verfasst: 06.08.2011, 14:12
von AG1M
@fame
Habe ich getan, die Datei wird erstellt, ist aber 0 Byte groß und ist leer. Habe nun extra ein Script nach der Anleitung
FreeNAS forum • View topic - Shell scripting FAQ erstellt, geht trotzdem nicht :/ Wenn ich wieder per Hand den Cronjob ausführe, geht alles wunderbar.
@wildtollwut
Bei der neuesten FreeNAS Version die ich nutze, geht das leider nicht, habe darum über einen seperaten Installer das ganze gemacht, habe es sogar getestet nicht als root zu starten (als angelegter Benutzer) und da geht es auch zu starten, aber der Autostart geht nicht, egal ob per Cronjob oder Befehlscript beim starten.
Ich weiß langsam nicht mehr was ich noch machen kann.
Verfasst: 06.08.2011, 14:48
von fame
Ok, dass die Datei erstellt wird heisst dass dein Befehl an irgendeiner Stelle ausgefuehrt wird. Dass die Datei leer ist heisst es gab keine Ausgabe/Error des Programms
Ich weiss nicht wieviel Unix Erfahrung du hast. Fuehl dich also bitte nicht beleidigt falls du dass schon 1000. gecheckt hast
Ein
nach dem Start gibt also definitiv nix aus?
Mhh. Eine Moeglichkeit waere noch ein eigenes Init Skript zu erstellen. Ist jetzt fuer einen einfachen Befehl nicht ideal, aber vielleicht klappts?! Bin sonst auch gerade etwas ratlos
Ahso: Gibt es eine Moeglichkeit pyload irgendwie mit --verbose, --debug oder aehnlichem zu starten? Bzw. schreibt das Programm ueberhaupt in eine Logdatei? Weil es wird ja irgendwo wenigstens versucht es zu starten, vielleicht steht dort was drin.
Verfasst: 07.08.2011, 11:35
von AG1M
Ich bin Unix Noob
Ein
gibt nichts aus.
pyLoad erstellt Log Dateien, aber nur mit Infos über das Programm nachdem es gestartet ist.
Wie erstelle ich ein Init Skript das mein Script als mein angelegter Benutzer ausführe?
Danke
Verfasst: 07.08.2011, 21:51
von wildtollwut
versuche mal was derartiges:
Code: Alles auswählen
su - deinbenutzername -c "/usr/home/spoob-pyload-tip/pyLoadCore.py --daemon"
Aber ich weiß nicht, ob das weiterhilft. Vielleicht funktioniert ja der Debug-Modus und gibt zusätzliche Informationen (pyLoadCore.py -d --daemon)? Eigentlich kann es aber wirklich nur sein, daß irgendetwas noch nicht zur Verfügung steht, das er braucht. Von Ferne ist das schwierig zu diagnostizieren. Ich würde schrittweise vorgehen, z.B. erstmal ein ganz einfaches Python-Skript starten, das nur eine Datei schreibt, etwas ausgibt oder dergleichen und mich dann Stück für Stück vorarbeiten. Dir als Anfänger wird das aber wahrscheinlich schwerer fallen.
Ein ganz einfaches Skript wäre z.B.:
Code: Alles auswählen
myfile = open("myfile", "w")
myfile.write("hehe")
myfile.close()
Es schreibt "hehe" in die Datei myfile. Das könntest du mal beim Start ausführen lassen und schauen, ob es das tut, was es soll
Verfasst: 07.08.2011, 22:04
von AG1M
Hey danke,
folgendes ist passiert nachdem ich:
Code: Alles auswählen
su - agim -c "/usr/home/spoob-pyload-tip/pyLoadCore.py --daemon"
eingeben habe:
Code: Alles auswählen
Traceback (most recent call last):
File "/usr/home/spoob-pyload-tip/pyLoadCore.py", line 42, in <module>
from module import InitHomeDir
File "/usr/home/spoob-pyload-tip/module/InitHomeDir.py", line 77, in <module>
makedirs(configdir, 0700)
File "/usr/local/lib/python2.6/os.py", line 157, in makedirs
mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/mnt/pyload'
Für mich sieht das überall nach einem Rechteproblem aus oder? Wenn ja wie kann ich das ändern?
P.S. was mich am meisten wundert ist der Fehler "OSError: [Errno 13] Permission denied: '/mnt/pyload'", denn den Ordner "/mnt/pyload" gibt es garnicht. Bei mnt ist nur mein Raid 1 drinn und meine Ordner mit verschiedenen SMB Freigaben.
Verfasst: 08.08.2011, 08:59
von wildtollwut
Laut Quellcode (
https://bitbucket.org/spoob/pyload/src/ ... HomeDir.py) versucht er an der Stelle die Konfigurationsdatei anzulegen, scheitert aber, weil er nicht darf. Das Konfigurationsverzeichnis setzt sich aus Home-Verzeichnis und pyload zusammen. Seltsamerweise denkt er, dein Home-Verzeichnis sei "/mnt". Hast du das vielleicht bei der Konfiguration irgendwo falsch angegeben (oder irgendwann mal mit --configdir /mnt gestartet)? Was sagt denn
?
Verfasst: 08.08.2011, 20:59
von AG1M
Abend,
also
gibt
aus.
Habe das pyload Setup noch einmal neu gemacht und das Config Verzeichniss von
(war Standardvorgabe)
auf
geändert und konnte danach ohne Fehlermeldung
Code: Alles auswählen
su - agim -c "/usr/home/spoob-pyload-tip/pyLoadCore.py --daemon"
ausführen, das seltsame ist aber das dann zwar
steht, aber pyload nicht aktiv in den Prozessen (Top) angezeigt wird und der Webserver auch nicht zu erreichen ist. Mache ich das ganze als root, geht es.
Was mache ich falsch?
Ich könnte pyload zwar als root starten lassen, aber dann habe ich ein anders Problem. Dann kann ich nicht mehr die Dateien auf der SMB Freigabe löschen, weil dann der Fehler kommt "nur Benutzer root" hat dafür Rechte.
Starte ich per Hand pyload (nach dem booten von FreeNAS) als mein Benutzer (agim) der extra für die Freigaben etc. angelegt wurde, kann ich alles löschen und bearbeiten wie ich mag. Aber irgendwie startet das ganze nicht automatisch
Verfasst: 08.08.2011, 21:49
von pawlak
Starte es doch mal ohne --daemon, dann bekommst du vielleicht ne Fehlermeldung.
Ansonsten schau mal in ~/.pyLoad/Log/log.txt was da so drinsteht.
Verfasst: 08.08.2011, 21:49
von wildtollwut
Versuch mal, den Befehl im Skript auf folgendes (hoffentlich Überkomplexe) zu ändern:
Code: Alles auswählen
/usr/local/bin/sudo -u agim -H sh -c '/usr/home/spoob-pyload-tip/pyLoadCore.py --daemon'
Vielleicht hilft das irgendwie weiter, -H weist nochmal explizit darauf hin, daß das Home-Verzeichnis des entsprechenden Nutzers gewählt wird.
Verfasst: 08.08.2011, 22:31
von AG1M
Werde beides morgen testen, danke nochmals.
Verfasst: 09.08.2011, 20:32
von AG1M
@pawlak
Das passiert ohne --daemon
Code: Alles auswählen
/usr/home/spoob-pyload-tip/pyLoadCore.py
Traceback (most recent call last):
File "/usr/home/spoob-pyload-tip/pyLoadCore.py", line 599, in <module>
pyload_core.start()
File "/usr/home/spoob-pyload-tip/pyLoadCore.py", line 259, in start
self.config = ConfigParser()
File "/usr/home/spoob-pyload-tip/module/ConfigParser.py", line 47, in __init__
self.checkVersion()
File "/usr/home/spoob-pyload-tip/module/ConfigParser.py", line 87, in checkVersion
self.checkVersion(n + 1)
File "/usr/home/spoob-pyload-tip/module/ConfigParser.py", line 87, in checkVersion
self.checkVersion(n + 1)
File "/usr/home/spoob-pyload-tip/module/ConfigParser.py", line 87, in checkVersion
self.checkVersion(n + 1)
File "/usr/home/spoob-pyload-tip/module/ConfigParser.py", line 65, in checkVersion
f = open("pyload.conf", "rb")
IOError: [Errno 13] Permission denied: 'pyload.conf'
Also wieder eine reine Zugriffssache? Kann ich irgendwie allen Ordnern und Datein volle Schreibrechte für meinen User agim geben? Das müsste ja das Problem beheben oder?
@wildtollwut
Dein Script geht leider nicht, da kommt das:
Sorry für meine Fragen, ich bin leider Unix Anfänger.
Verfasst: 09.08.2011, 20:50
von pawlak
AG1M hat geschrieben:Also wieder eine reine Zugriffssache? Kann ich irgendwie allen Ordnern und Datein volle Schreibrechte für meinen User agim geben? Das müsste ja das Problem beheben oder?
Ja, das kannst du, aber lass das mal lieber.
Aber gib deinem Nutzer auf jeden Fall Zugriff auf die ~/.pyLoad-Sachen:
chown -r agim ~/.pyload
Danach schauste, was für ne Fehlermeldung kommt, oder ob überhaupt eine kommt.
Verfasst: 09.08.2011, 21:53
von AG1M
Ich wollte auch nur den pyload Ordner ändern. Den Rest lasse ich unberührt.
Es geht! Mit dem chown -R agim ORDNER (musste nur das R groß schreiben) Es lag echt nur daran, vielen tausend dank! Der Autostart geht nun wie es soll
Zusammenfassung, mein User hatte einfach nur keine Schreibrechte für den pyload Ordner + die darin liegenden Dateien und es wurden keine Fehlermeldungen vorab angezeigt, erst ohne --daemon kam eine Meldung -> kein Zugriff.