Autostart mit dem user "pi"

  • Ich habe ein Programm, welches sich über ein Script in /etc/init.d/ starten und stoppen lässt:


    mithilfe von update-rc habe ich es geschafft, dass es automatisch beim Hochfahren ausgeführt wird.

    Mein Problem ist jedoch folgendes: Das Programm wird beim Hochfahren von root gestartet, was jedoch einige Probleme auslöst (gpio, "nicht" lesbare Dateien, beenden nur mit sudo).
    Wie kann ich es machen, dass das Programm mit den Rechten des normalen users "pi" gestartet wird?

  • Ohne davon Ahnung zu haben, würde ich mal mit den Begriffen "sudo cronjob -e", "username" und "@reboot" auf Suche gehen.

    "sudo cronjob -e" äh, naja, halt cronjob für root. :lol:
    "@reboot", damit der cronjob beim booten ausgeführt wird.
    "username" in dem Zusammenhang, damit Dein Script im Userkontext ausgeführt wird.

    Wie gesagt, alles nur eine Idee.

  • OK, nächster Versuch.
    "su pi -c /pfad/zum/script.sh"

    Zumindest klappt das, wenn ich mich per ssh als root auf dem Raspi einlogge.
    Führe ich dann z.B. "su pi -c whoami" aus, kommt folgendes:

    Code
    root@raspi ~ # su pi -c whoami
    pi


    Bin als "root" angemeldet, whoami zeigt "pi".

    Das ganze in den Autostart einzubauen, bleibt Deine Aufgabe. ;)

  • Danke für den Hinweis.


    "su pi -c /pfad/zum/script.sh"


    ist aber in Skripten ungeignet, da man dafür das Passwort für den Benutzer pi eingeben muss.

    Code
    sudo -H -u pi


    macht aber dasselbe.

    Code
    pi@raspberrypi ~ $ sudo -H -u pi whoami
    pi


    Jetzt habe ich die entsprechenden Zeilen angepasst:

    Code
    sudo -H -u pi touch /home/pi/aufzeichnung.lock
    sudo -H -u pi /home/pi/Temperaturmessung/main.sh > /dev/null 2>> /home/pi/log/aufzeichnung.txt &


    Wenn ich zum Test als root eine Datei erstelle:

    Code
    root@raspberrypi:/home/pi# sudo -H -u pi touch test
    root@raspberrypi:/home/pi# ls -l test
    -rw-r--r-- 1 pi pi 0 Apr 20 16:09 test


    ist der Besitzer, so wie es sein soll, pi.

    Aber trotzdem ist die Datei aufzeichnung.lock nach einem Neustart von root:

    Code
    pi@raspberrypi ~ $ ls -l aufzeichnung.lock 
    -rw-r--r-- 1 root root 0 Apr 20 16:16 aufzeichnung.lock


    genauso wie der Prozess:

    Code
    pi@raspberrypi ~ $ ps -aux | grep main
    root      2725  0.2  0.2   2800  1352 ?        S    16:16   0:00 /bin/bash /home/pi/Temperaturmessung/main.sh

    Weiß jemand Rat?

    NEIN!!! :wallbash::wallbash::wallbash:
    Der Preis für den dümmsten Fehler geht heute an mich.
    Ich habe die Datei bearbeitet, aber vergessen sie nach /etc/init.d zu kopieren.:wallbash:
    Jetzt wo die neue Datei ausgeführt wird, funktioniert alles wie gewünscht.

    Einmal editiert, zuletzt von Findus23 (20. April 2014 um 16:54)

Jetzt mitmachen!

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