Programm automatisch starten

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

    ich wollte mir mit dem Raspi einen Gameboy bauen - dazu habe ich gpSP installiert, das funktioniert soweit auch gut. Aber ich habe es bis jetzt nicht geschafft ein Script zu schreiben, dass gpSP nach dem hochfahren automatisch startet. Ich habe keine Erfahrung mit Autorunscripten und Anleitungen aus dem Netz haben auch nix gebracht. Wenn ich mein Script aber in der Konsole in Raspbian teste, funktioniert das. Wie kann ich denn bewirken, dass mein gpSP nach dem hochfahren automatisch gestartet wird?

    Mein Script sieht folgendermaßen aus:

    #!/bin/bash
    # Script to start our application
    echo "Doing autorun script..."
    sudo /home/pi/gpSP/gpsp.a &

    Das ist das einzige, was annähernd, sprich mit Test in der Konsole

    /home/pi/bin/script_auto_run

    Funktioniert.

    Dann bin ich weiter der Anleitung gefolgt:

    "To launch the script at start-up edit the “rc.local” file needs to be edited.


    sudo nano /etc/rc.local

    Add the following line:


    /home/pi/bin/script_auto_run
    Save it by pressing Ctrl+X, " Y", ENTER

    Re-boot your RPi and it will run."

    Hab ich also alles so gemacht, nur startet mein gpSP nicht, wenn ich meinen Raspi reboote.

    Hat hier jemand vielleicht eine Idee?

  • Es wäre toll wenn (allgemein gesprochen) die Forumsuche oben rechts bemüht wird bevor ein Thread erstellt wird...

    • /etc/rc.local wird bereits mit root Rechten ausgeführt und somit auch alle im Script befindlichen Befehle - sudo is also überflüssig
    • Die Datei sollte ausführbar gemacht werden, oder man übergibt die Datei direkt dem richtigen Interpreter
  • Na, meingrafd, das Script an sich funktioniert doch und sudo schadet nicht.
    Meine Frage: braucht das Programm Grafik? rc.local startet schon früher. Je nach Grafik bieten diese eigene Auto-Start-Scripte.

  • Na, meingrafd, das Script an sich funktioniert doch und sudo schadet nicht.

    Es manuell auszuführen (wie es jedem beigebracht wird über den Benutzer ' pi ') ist was anderes, dann brauch man sudo... Aber die Datei /etc/rc.local wird bereits als root ausgeführt als ist sudo überflüssig (..überflüssig ist was anderes als "geht nicht"..)


    Leopold: benötigt es eine Desktopumgebung wie LXDE?

  • Moin,

    ich denke du musst dafür sorge tragen, das das als letztes gestartet wird. Dazu würde ich mir an deiner Stellen eine Start/stop skript bauen mit hilfe von /etc/init.d/skeleton
    Also kopieren nach "neuesskript". Befehle für start und stop einbauen. Pfade und was dat dings noch so braucht.

    Dann das ganze auf der Console testen, sprich ob das neue start/stop skript auch den gpsp startet wenn du es mit "neuesskript start" aufrufst.

    Wenn das funktioniert, schauen in welchem runlevel du dich eigentlich befindest (vermute 3)
    mit "who -r" - oh sehe gerade bei mir scheints 2 zu sein -merkwürdig aber kein Beinbruch...
    Dann brauchst du nur noch ein link in rc{runlevel}.d mit dem Namen S99neuesscript welcher auf nach /etc/init.d/neuesscript zeigt und einen link der K01neuesskript heist und auch auf das gleiche skript zeigt. K01... ist vieleicht auch nicht wirklich wichtig.


    Dann sollte dein Skript als letztes beim booten gestartet werden.

    Eventuell reicht es auch einfach die Zeile

    /home/pi/gpSP/gpsp.a &

    in /etc/init.d/rc.local in die start-routine einzubauen:

    Code
    [...]
    case "$1" in
        start)
        do_start       
        /home/pi/gpSP/gpsp.a &
        ;;
    
    
    [...]

    Gruß Lunepi

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

  • Nein, mein ich nicht!

    Lies noch mal - ich meine nämlich /etc/init.d/rc.local <> /etc/rc.local

    Gruß Lunepi

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

  • Hallo,

    oops .. überlesen ... sorry,
    Aber abgesehen davon: das setzt ja voraus, dass die Anleitung fehlerhaft ist .. na - i woass ned :s

    // EDIT:
    BTW ist es imho wurscht, in welche Datei das eingetragen wird. Das Verzeichnis /etc/init.d wird eh nur aus Kompatibilitätsgründen (sysvinit) mitgeschleift. Siehe auch -> hier <-.
    Und wenn Du mal einen Blick in die /etc/init.d/rc.local wirfst wird Dir auffallen, dass hier auch nur die /etc/rc.local aufgerufen wird. ;) ...
    Also ... wurscht :fies:

    Spoiler anzeigen

    #! /bin/sh
    ### BEGIN INIT INFO
    # Provides: rc.local
    # Required-Start: $all
    # Required-Stop:
    # Default-Start: 2 3 4 5
    # Default-Stop:
    # Short-Description: Run /etc/rc.local if it exist
    ### END INIT INFO


    PATH=/sbin:/usr/sbin:/bin:/usr/bin

    . /lib/init/vars.sh
    . /lib/lsb/init-functions

    do_start() {
    if [ -x /etc/rc.local ]; then
    [ "$VERBOSE" != no ] && log_begin_msg "Running local boot scripts (/etc/rc.local)"
    /etc/rc.local
    ES=$?
    [ "$VERBOSE" != no ] && log_end_msg $ES
    return $ES
    fi
    }

    case "$1" in
    start)
    do_start
    ;;
    restart|reload|force-reload)
    echo "Error: argument '$1' not supported" >&2
    exit 3
    ;;
    stop)
    ;;
    *)
    echo "Usage: $0 start|stop" >&2
    exit 3
    ;;
    esac


    -ds-

  • Wenn ich rc.local im Editor öffne und
    /home/pi/gpSP/gpsp.a &
    eingebe und das abpeichern will, sagt er mir "Die Datei kann nicht zum schreiben geöffnet werden" :S.

    EDIT: habs via Konsole editiert, startet trotzdem in Raspian.

    Einmal editiert, zuletzt von Leopold (1. März 2014 um 23:27)

  • Ja, habs alles brav via sudo gemacht, raspi hat das ganze auch abgespeichert, aber bootet weiterhin in Raspbian.
    Was genau soll ich in skeleton reinbasteln? Habe jetzt eine Datei "gameboystart " erstellt und den Inhalt dort reinkopiert.

  • Äh - Bitte - warum soll ne Anleitung nicht auch mal falsch sein?

    Aber Touche (oder wie das wort auch immer geschrieben wird ) den rc.local hba ich nicht gesehen. hatte nur geschaut ob es nicht ein Link ist auf eines vonbeiden oder umgekehrt.
    Aber bitte init.d ist eines der Standard Verzeichnisse und nix aus kompiblibums Gründen mitgeschleift. Oder wo stehen denn die start/stop skripte dann, wenn es etwas neues dafür gibt?

    Gruß Lunepi

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

Jetzt mitmachen!

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