Script Autostart Pfadproblem

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo

    Sry für die wirre Überschrift aber mir fällt nix besseres ein ;)

    Folgendes Problem:

    Ich will ein Skript beim Starten/Reboot ausführen (crontab, rc.loca oder init ist egal, daran liegt es nicht)

    Der Pfad zum Programm ist /home/username/Python/Bottle/app.py. Wenn ich nun zB mit crontab ''@reboot python /home/username/Python/Bottle/app.py &'' das Programm ausführe oder auf der Konsole mit '' python /home/pi/Python/Bottle/app.py'', dann startet das Programm zwar, aber die Pfade, welche im Programm hinterlegt sind, werden logischerweise nicht mehr gefunden, da das Programm aus dem root heraus bzw '/' gestartet wurde.

    Wenn ich zuerst aber in den Ordner navigiere und das Programm von dort aus starte, dann geht alles.
    root@raspberrypi:/home/username/Python/Bottle# cd /home/pi/Python/Bottle/
    root@raspberrypi:/home/username/Python/Bottle# python app.py &


    Lange Rede kurzer Sinn:

    Wie lautet die Befehlszeile für crontab, damit in den Ordner navigiert wird und von dort aus das Programm gestatet wird?

    Vielen Dank kommende Tipps :thumbs1:

  • Die Pfade im Skript sehen so aus:

    Wenn ich nun zB:

    Code
    plugin = bottle.ext.sqlite.Plugin(dbfile='/home/username/Python/Bottle/db/site.db')
    return template('/home/pi/Python/Bottle/views/main', username=False,  ip=ip)

    ergänze, dann läufts. Bottles built-in template engine hat eine Funktion, welche die Templates zB "template('main')" automatisch im Ordner '/views' sucht. Augenblicklich müsste ich sämtliche Pfade abändern.

    mfg

  • Und das möchtest du nicht?

    Also wenn du die Pfade im Script nicht anpassen willst dann hast du 2 möglichkeiten:

    • Crontabeintrag anpassen:
      Code
      @reboot (cd /home/username/Python/Bottle/; python app.py) &
    • Bash Script anlegen indem zuvor in das Verzeichnis gewechselt wird und anschließend das python Script ausführt. In die Crontab dann einfach das bash Script eintragen

  • Und das möchtest du nicht?

    Nö, weil das Skript ca. 1000 Zeilen lang ist und dort noch drei weiter Skripts importiert werden welche auch wieder mehrere hundert Zeilen lang sind. Da würde ich ja glatt Fussball verpassen, bis ich da fertig bin.

    Code
    @reboot (cd /home/username/Python/Bottle/; python app.py) &

    Genau sowas hab ich gesucht. Läut perfekt. Tausend Dank :thumbs1:

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!