RasPi - Autostart von Skript mit bestimmten Benutzer

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

    ich bin gerade dabei, ein Skript per Autostart starten zu wollen.

    Dazu hab ich das bash-Skript (mit Pfad) in die "rc.local"-Datei (im Ordner "etc") vor dem exit-Befehl eingefügt.
    In der sh-Datei wird der Pfad zur Datei aufgerufen.

    Wenn ich es so mache, dann funktioniert es:

    rc.local

    Code
    /var/www/autostart/autostart.sh &

    autostart.sh

    Bash
    #!/bin/sh
    
    
    /var/www/Programm/testone/testone &

    allerdings wird dann das Programm als "root" ausgeführt.


    Gibt es eine Möglichkeit, das Programm unter dem Benutzer "www-data" zu starten?

    Hab es schon mit folgendem Eintrag versucht:

    autostart.sh

    Code
    su "www-data" -c "/var/www/Programm/testone/testone &"


    allerdings wird dann nach einem Password gefragt. Aber ich habe, meines Wissens, keins vergeben, oder etwa doch?
    Ich hab den Apache2 nach folgender Anleitung installiert:
    Raspberry Pi als Webserver - Apache 2 Installation


    Kann mir jemand helfen?

  • RasPi - Autostart von Skript mit bestimmten Benutzer? Schau mal ob du hier fündig wirst!

    • Offizieller Beitrag

    Hey,

    die Datei rc.local wird immer unter root aufsgeführt ;)

    Aber was ich nicht verstehe warum bei dir su nicht funktioniert...
    Vielleicht lässt du einfach mal die " " um dem User weg

    Ich bin ein gefallener Engel namens Turael.

    Einst vor langer Zeit rebelierte ich im Himmel bis Gott mich auf die Erde verbannte.

    Doch meine taten werden kein ende finden....

    Einmal editiert, zuletzt von Turael (12. September 2013 um 13:17)

  • also ich hab es jetzt mal ohne die "" um den Usernamen probiert:

    autostart.sh

    Code
    su www-data -c "/var/www/Programm/testone/testone &"

    Dann hab ich es erstmal in der Shell aufgerufen, ob es funktioniert.
    Und hier fragt er mich dann wieder nach einem Passwort.

    Wenn ich als Benutzername anstatt "www-data" den Benutzernamen "pi" eingebe, dann komme ich mit dem Passwort "raspberry" weiter und das Skript läuft durch.

    Aber für den Benutzer "www-data" hab ich kein Passwort.

    Wie ihr merkt, bin ich in Linux noch totaler Anfänger.
    Also kann mir jemand sagen, ob ich nach der Anleitung (siehe oben) ein Passwort für den Benutzer "www-data" vergeben habe?
    Und wenn nein, warum funktioniert dann ein leeres Passwort nicht?

    sudo kann ich ja auch ohne Passwort aufrufen?

    Einmal editiert, zuletzt von PCheute (12. September 2013 um 13:31)

    • Offizieller Beitrag

    Achsooo ...

    Jetzt hab ich dein Problem ;)


    Wenn du das Script so aufrufst:

    pi@raspi ~: su www-data -c "/var/www/Programm/testone/testone &"

    ist es normal das du ein Passwort eingeben musst, da der User Pi keinen zugriff (ohne Passwort) auf andere Konten hat.
    Wenn du nun das ganze unter root ausführst dann wirst du nicht mehr nach einem Passwort gefragt - da root über alles verfügen darf ;)

    Ich bin ein gefallener Engel namens Turael.

    Einst vor langer Zeit rebelierte ich im Himmel bis Gott mich auf die Erde verbannte.

    Doch meine taten werden kein ende finden....

    Einmal editiert, zuletzt von Turael (12. September 2013 um 13:37)

  • Es hilft oft die Forum-Suche (oben rechts) zu benutzen - eine Suche nach " autostart " zeigt (wegen dieses Threads jetzt leider auf der 2.Seite):
    [Tutorial] Automatisches Starten von Scripte / Programme ( Autostart )

    Dort gehe ich in Post#11 detailierter darauf ein das es mehrere Möglichkeiten gibt ein Script automatisch bei Systemstart zu starten

  • Ja, das stimmt. Wenn ich das Skript aus der Shell mit "root" ausführe, dann funktioniert es so, wie es soll. Das Programm wird unter dem Benutzer "www-data" gestartet.

    Wenn ich den RasPi aber neu starte, dann startet das Programm nicht.

  • Ja, den Thread kenne ich. Daher hab ich ja auch die Info, wie ich das starte.
    Aber was kann man machen, wenn das nicht funktioniert?

    Denke aber jetzt, das es am Programm liegt.
    Deshalb werde ich den Thread mal beenden.

  • Wenn du das Script manuell ausführen kannst, also so:

    Code
    /var/www/autostart/autostart.sh

    dann wird das auch über crontab funktionieren sofern du es dort korrekt eingetragen hast (die syntax eingehalten) - aber ohne zu wissen wie dein eintrag exakt aussieht kann man da ewigkeiten wild drüber spekulieren....

    ansonsten kann man auch ins /vat/log/syslog gucken ob ggf Fehler aufgetreten sind (da steht auch wenn die Syntax falsch ist)

Jetzt mitmachen!

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