Erfolgreicher rc.local Eintrag macht dennoch Probleme!

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo liebes Raspberry Pi Forum,

    als "Neuer" möchte ich mich kurz vorstellen. Ich bin 33 Jahre alt und rel. unerfahren im Programmieren. Zur Zeit eigne ich mir allerdings Python und C an, weil ich dies für eine Arbeit benötige.

    Bei einer Sache benötige ich eure Hilfe, da mir das Tuturial zum einbinden in die rc. local im Raspi nicht ausreichend helfen konnte...

    Mittels eines Tasters soll ein Python Programm gestartet werden. Er macht eine permanente GPIO Abfrage.
    Wenn ich also nach dem Reboot die Taste drücke startet auch das Mainprog.
    Allerdings wird der Sound, den ich in das Mainprogramm integriert habe, nicht abgespielt.

    Starte ich das Tasterprogramm an der Shell funktioniert der Sound wie gewohnt.

    Ich gehe also davon aus, dass irgendwie die Soundtreiber nicht geladen worden sind, obwohl rc.local alle Runlevels abklappern soll und durch das "&" am Ende alle anderen Treiber geladen werden sollten...

    hier ein paar Info's:

    Eintrag in der rc.local:

    python /root/wave/Start_Taster.py&
    exit 0

    Wenn jemand eine Idee hat, was ich übersehe oder falsch mache würde ich mich über Ideen und Antworten freuen! Vielen Dank im Voraus.

  • Erfolgreicher rc.local Eintrag macht dennoch Probleme!? Schau mal ob du hier fündig wirst!


  • Ich gehe also davon aus, dass irgendwie die Soundtreiber nicht geladen worden sind, obwohl rc.local alle Runlevels abklappern soll und durch das "&" am Ende alle anderen Treiber geladen werden sollten...

    Das eine hat mit dem anderen nichts zu tun

    /etc/rc.local wird nur bei den Runleveln 2, 3, 4 und 5 ausgeführt - es werden also nicht "alle Runlevels abgeklappert"

    Das & am Ende der Zeile hat auch nichts damit zu tun ob Soundtreiber geladen w(e/u)rden - oder lädst du über /etc/rc.local die Soundtreiber und stellst sicher das dein Script erst danach ausgeführt wird :huh:


    Eintrag in der rc.local:

    python /root/wave/Start_Taster.py&
    exit 0

    Wieso hast du kein Leerzeichen zwischen dem Dateinamen und & ?

    Zeig mal bitte dein Python Script


    Und das nächste mal bitte erst die Forumsuche (oben rechts) bemühen (mehr als ein mal) - solch ein ähnliches Thema wurde am Wochenende breits 2x erstellt - diese ewigen Wiederholgungen nerven langsam...

  • Hallo meigrafd,
    vielen Dank für deine schnelle Antwort und Info's.

    Anbei mal das Script:

    #!/usr/bin/env python
    from time import sleep
    import os
    import RPi.GPIO as GPIO

    GPIO.setmode(GPIO.BCM)
    GPIO.setup(25, GPIO.IN)

    while True:
    if ( GPIO.input(25) == False :(
    os.system("sudo python /root/wave/Mainprog.py")
    sleep(0.1);


    Das mit dem Leerzeichen hatte ich sonst auch... Ändere ich wieder um.

    Gruß

    Einmal editiert, zuletzt von Ano.Mander (3. März 2014 um 13:48)

  • Und was macht Mainprog.py ?


    Wie gesagt, eine Forumsuche nach " rc.local " , sortiert nach Date (kann man rechts einstellen nachdem gesucht wurde) und dann zB den 3. oder 7. Treffer - da findest du einige Tipps die dir bei deinem Problem behilflich sein könnten..

  • Hallo meigrafd,

    entschuldige die späte Antwort, wollte aber erst sicher gehen, dass ich alles erdenkliche gesucht und getan habe bevor ich nochmal antworte.

    Das Problem mit dem fehlenden Sound habe ich nach wie vor. Egal, ob ich ein sleep60 && - Befehl in die Crontab Zeile einfüge oder nicht.
    Das Problem aus Programm automatisch starten scheint wohl das gleiche zu sein, wie ich es habe.

    Das einzigste was annährend plausibel klang ist folgendes:

    Allerdings werde ich daraus nicht schlau.:blush:


    Also nach wie vor springt zwar das Programm an, aber hören tue ich nichts. (--> @reboot python /root/wave/Start_Taster.py &)


    Mache ich es direkt an der Shell klappt es Reibungslos.

    Ein Verweisen auf Suchfunktion im Forum bringt mich leider nicht mehr weiter, verstehe es aber, wenn du genervst bist.
    Viele Grüße und dank fürs helfen...

    Einmal editiert, zuletzt von Ano.Mander (5. März 2014 um 13:54)

  • Allerdings werde ich daraus nicht schlau.:blush:

    Versuch mal folgendes:


    init.d Script erstellen: sudo nano /etc/init.d/run_script.sh

    Script ausführbar machen: sudo chmod a+x /etc/init.d/run_script.sh

    Dann tragen wir das in den Runlevel ein sodass es erst ganz zum Schluss gestartet wird:

    Code
    sudo update-rc.d run_script.sh start 99 2 3 4 5 . stop 99 0 1 6 .

    Die 99 ist der Moment wo es gestartet und die 2. 99 wann es beendet wird. Um so höher diese Zahl ist um so später wird es ausgeführt - 01 wäre am frühsten und 99 am spätesten ;)

    Anschließend sicherstellen das du es aus der Crontab ausgetragen, und auch sonst nirgends eingetragen hast, und dann das System neu starten


    Wenn das auch nicht gehen sollte dann mal bitte dein Script posten (bitte in Kode)

  • Moin,

    denkt bitte immer dran volle Pfadnamen zu nutzen! Gerade in Start/stop scripten auch in deinem python script. Oder PATH laden
    Machts immer estwas besser.

    Gruß Lunepi

    --
    man ist das System-Anzeigeprogramm für die Handbuchseiten von Linux.

  • Hallo, habe alles wie geschrieben befolgt, allerdings gab es eine kleine Fehlermeldung nach
    sudo update rc....

    update-rc.d: using dependency based boot sequencing
    update-rc.d: warning: stop runlevel arguments (0 1 6) do not match run_script.sh Default-Stop values (none)


    Nach dem reboot wurde das Hauptprogramm vom Taster gestartet, nur leider ohne Sound.

    Du willst wahrscheinlich jetzt den Code vom Hauptprog.? Aufgrund der Arbeit möchte ich gerne davon absehen das öffentlich zu machen.. Hoffe du verstehst das?! :daumendreh2:


  • Hallo, habe alles wie geschrieben befolgt, allerdings gab es eine kleine Fehlermeldung nach
    sudo update rc....

    update-rc.d: using dependency based boot sequencing
    update-rc.d: warning: stop runlevel arguments (0 1 6) do not match run_script.sh Default-Stop values (none)

    Dann bearbeite das /etc/init.d/run_script.sh Script und such dir die Default-Stop Zeile und änder diese so ab das sie wie folgt aussieht:

    Code
    # Default-Stop:      0 1 6

    Und anschließend führst du den update-rc.d Befehl nochmal aus...


    Du willst wahrscheinlich jetzt den Code vom Hauptprog.? Aufgrund der Arbeit möchte ich gerne davon absehen das öffentlich zu machen.. Hoffe du verstehst das?! :daumendreh2:

    Ne, ehrlich gesagt versteh ich das nicht - ich mach mir auch ne menge Arbeit dir zu helfen ...... so super brisant wirds wohl nich sein :huh:

    Dann halt über ~/.bashrc oder ~/.profile starten lassen..

  • Hallo,

    habs verändert. Diesmal gabs diesen Hinweis:

    update-rc.d: using dependency based boot sequencing
    insserv: warning: current stop runlevel(s) (empty) of script `run_script.sh' overrides LSB defaults (0 1 6).

    Nach reboot startete das Programm ohne Sound. :wallbash:

    Edit:
    Das ganze wird für eine Klausur benötigt und möchte daher nicht vor Abgabe so viel davon preisgeben. Hoffe es versteht jeder?!

    Ich bin bei suche im Forum zu bashrc noch auf einen Eintrag gestoßen, wo es um USB Festplatte mounten geht. Ich habe zwar keine Festplatte, aber meine Soundbox bezieht seinen Strom über USB, Ausgang ist am Klinkenstecker. Ich vermute aber mal, dass es nichts damit zu tun hat..
    Das mit dem bashrc suche ich noch, wie das funktioniert und melde mich dann wieder!

    Ich gebe (noch) nicht auf.... :denker:


    :danke_ATDE:

    Einmal editiert, zuletzt von Ano.Mander (6. März 2014 um 13:21)

Jetzt mitmachen!

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