Abbruch von Autostarts unter bestimmten Bedingungen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Der Autostart per /etc/rc.local führt bei mir in das Tronradio (

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.
    ), wenn ich eine Tastatur direkt angeschlossen hab möchte ich jedoch in die shell starten.
    Gibt es dazu eine tastaturkombi oder sonstige lösungen ohne extra Hardware?

    In der /etc/rc.local hab ich nur die ausgabe der aktuellen IP und besagten autostart.

    Einmal editiert, zuletzt von Jungleast (22. April 2015 um 20:37)

  • Abbruch von Autostarts unter bestimmten Bedingungen? Schau mal ob du hier fündig wirst!

  • Modifiziere die /etc/rc.local wie folgt:

    Code
    if [ -z "$(cat /proc/bus/input/devices)" ]; then
        /home/pi/RPi-Tron-Radio/launcher.sh
    fi

    Was das bewirkt ist, dass das Script nur ausgeführt wird wenn kein input Device angeschlossen ist, also eine Tastatur oder Maus.
    Wenn also die " cat /proc/bus/input/devices " Ausgabe leer ist, dann...script starten

  • Hallo Jungleast,

    demRaspberry Pi bleiben nicht allzu viele Möglichkeiten, wenn er bootet.

    Ich würde es so machen - es gibt sicherlich einige andere Varianten:

    Ein anderes Programm in den Autostart bringen. Dieses Programm fragt über lsusb die Anwesenheit einer Tastatur ab.
    Wenn keine Tastatur vorhanden: Dein bisheriges Tronradio-Programm starten (inkl. Pfad dorthin).

    Wurde eine Tastatur gefunden, dann passiert gar nichts weiter.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Ich probierte meigrafd's Variante, aber die startet leider nicht mehr in die Tron-Oberfläche. Ich hab die Idee es als Einzeiler umzusetzen ohne "; then", mal probieren.

  • Das ändert eigentlich nichts, wenn du es als Einzeiler machst.

    Poste mal bitte deine vollständige /etc/rc.local

    Und die Ausgabe von:

    Code
    [ -z "$(cat /proc/bus/input/devices)" ] && echo none || echo jo


    PS: NICHT /etc/rc.local überschreiben! Nur editieren! Die Datei muss ausführbar sein, sonst wird da auch nichts mehr ausgeführt.



  • Antwort von cat: jo

    Einmal editiert, zuletzt von Jungleast (22. April 2015 um 21:36)

  • Die Zeile vor dem exit wird so nix, falsche Syntax aber is ja zum glück auskommentiert.

    Schließ mal bitte eine Tastatur an, anschließend postest du die Ausgabe von:

    Code
    cat /proc/bus/input/devices

    Danach ziehst du die Tastatur wieder ab und führst den Befehl erneut aus und postet das ebenfalls.

  • Ausgabe von cat /proc/bus/input/devices ergibt

    Einmal editiert, zuletzt von Jungleast (22. April 2015 um 21:45)

  • Aha. Es ist also auch noch ein Touchscreen angeschlossen.

    Dann änderst du das von:

    Code
    if [ -z "$(cat /proc/bus/input/devices)" ]; then
        /home/pi/tron-radio/launcher.sh
    fi


    Auf:

    Code
    if [ -z "$(grep 'N:' /proc/bus/input/devices | grep -v 'Touchscreen')" ]; then
        /home/pi/tron-radio/launcher.sh
    fi

    Damit werden nur die N: Zeilen aus der Datei ausgelesen und alle Zeilen die Touchscreen enthalten rausgefiltert. Bleibt dann noch was übrig ist also mehr als nur der Touchscreen angeschlossen.

Jetzt mitmachen!

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