Ich versuche ein Skript auszuführen, wenn mein Raspberry Pi hochfährt. Ich möchte, dass sich der Webbrowser automatisch öffnet.
Ich habe versucht, eine einfache Lösung zu finden (wie das Ablegen meines Skripts in einem "Start" -Verzeichnis oder ähnlichem), aber ich sehe so etwas nicht.
Ich habe mir Upstart angeschaut , aber ich habe Mühe zu verstehen, wie das funktioniert. Alle Skripte, die ich ausprobiert habe, haben beim Testen nicht funktioniert.
.xinitrc
oder.xsession
Datei hinzufügen .Antworten:
Sehen Sie sich dieses Tutorial an, um Midori beim Start auszuführen . Lesen Sie weiter für DIY-Lösungen.
Sie können Ihr Skript ausführbaren Befehl an der Unterseite hinzufügen
.bashrc
das wird führen Sie Ihr Skript jedes Mal , öffnen Sie ein Terminal (oder führen Sie eine neue Instanzbash
) .Stellen Sie sicher, dass Sie sich im
pi
Ordner befinden:Erstellen Sie eine Datei und schreiben Sie ein Skript, das in der Datei ausgeführt werden soll:
Speichern und beenden: Ctrl+ X, Y,Enter
Zur
.bashrc
Konfiguration öffnen :Scrolle nach unten und füge die Zeile hinzu:
./superscript
Speichern und beenden: Ctrl+ X, Y,Enter
Wenn Sie nach einer Lösung suchen, die beim Booten der Konsole funktioniert , sehen Sie sich diesen Link an . Grundlegender Überblick:
Erstellen Sie eine Datei für Ihr Startskript und schreiben Sie Ihr Skript in die Datei:
Speichern und beenden: Ctrl+ X, Y,Enter
Machen Sie das Skript ausführbar:
Registrieren Sie das Skript, das beim Start ausgeführt werden soll:
Wenn Sie möchten, dass ein Skript beim Booten in die LXDE-Umgebung ausgeführt wird , können Sie sich diesen Beitrag im Raspberry Pi-Forum ansehen :
Navigiere zu
~/.config/lxsession/LXDE-pi
Öffnen Sie die
autostart
Datei in diesem Ordner:Fügen Sie
@midori
eine neue Zeile hinzu. Wenn Sie so etwas wie ein Python-Skript ausführen möchten, setzen Sie so etwas wie@python mypython.py
in eine neue Zeile. Das Ausführen einer Skriptdatei wäre@./superscript
, aber aus irgendeinem Grund wird das Skript in einer Endlosschleife ausgeführt (möglicherweise wird dies das beenden).Speichern und beenden: Ctrl+ X, Y,Enter
Starten Sie Ihren Raspberry Pi in der LXDE-Umgebung neu.
quelle
$ sudo startx
?.bashrc
wird nicht gelesen, wenn das System startet oder wenn sich ein Benutzer anmeldet , sondern nur beim Öffnen eines neuen Terminals (und wird jedes Mal gelesen, wenn der Benutzer ein neues Terminal öffnet). Ich bin verblüfft, dass diese Antwort so viele positive Stimmen bekommen hat: Der erste Teil ist einfach falsch . Der dritte Teil ist korrekt, um ein GUI-Programm auszuführen.Die Art und Weise, wie ich die meisten Leute gesehen habe (siehe Raspberry Pi-Foren) und mich selbst mit Erfolg gemacht habe, ist die Verwendung
/etc/rc.local
.Alles, was Sie hier tun müssen, ist
./myscript
in die rc.local-Textdatei zu schreiben. Wenn es in Python ist, setzen Siepython myscript.py
.Dies ist buchstäblich "eine einfache Lösung (wie das Ablegen meines Skripts in einem" Startverzeichnis "oder in einem ähnlichen Verzeichnis)". Vielleicht suchen Sie auch in den Foren, wenn Sie Fragen haben. Diese Lösung ergab sich aus den ersten 4 Ergebnissen von a Google-Suche!
quelle
python myscript.py
. Wenn Sie chmod + x hinzufügen möchten#! /bin/python
, können Sie das Skript ausführen, indem Sie "$pathtofile/myscript.py
where$pathtofile
is" ausführen,.
wenn Sie sich im selben Verzeichnis oder im absoluten oder relativen Pfad zur Datei befinden./etc/rc.local
dient nur zum Starten von Systemdiensten (Programme ohne Benutzeroberfläche).Fügen Sie es der crontab hinzu
Die crontab führt Befehle zu definierten Zeiten aus.
Bearbeiten Sie die Datei:
Zeile zur Datei hinzufügen (hier ein Python-Skript):
quelle
python3
), siehe hier/etc/rc.local
dient nur zum Starten von Programmen, die keine Benutzeroberfläche haben.Autostart von xorg-Apps
Wenn für das zu startende Skript eine xorg-Sitzung erforderlich ist, versuchen Sie möglicherweise, die Spezifikation für den automatischen Start von freedesktop zu befolgen, die je nach verwendeter Desktopumgebung möglicherweise funktioniert oder nicht.
Alternativ können Sie auf Ihre spezifische Desktop-Umgebung abzielen, wie unter https://wiki.archlinux.org/index.php/autostarting beschrieben .
Ausführen eines Skripts als systemd-Dienst
Wenn Ihr Skript der Beschreibung eines Daemons oder eines "Dienstes" entspricht und auf Ihrem System systemd ausgeführt wird, was für Raspbian und die meisten modernen Sprachen der Fall ist, können Sie Ihr Skript so konfigurieren, dass es als systemd-Dienst ausgeführt wird die Lebenszyklus- und Ausführungsumgebung sowie die Voraussetzungen für das (erneute) Starten des Skripts, z. B. das laufende Netzwerk. Es ist auch möglich, den Neustart des Dienstes im Falle eines Fehlers (
Restart=always
und einer Verzögerung zwischen dem Neustart, zRestartSec=10
. B. ) zu konfigurieren .Für den systemweiten Einsatz erstellen Sie Ihre systemd Unit-Datei unter
/etc/systemd/system
, zB mitvim /etc/systemd/system/autossh.service
:Siehe auch:
[
unit
] Konfiguration[
service
] KonfigurationJetzt können wir den Service testen:
Überprüfen des Status des Dienstes:
Beenden des Dienstes:
Sobald Sie überprüft haben, dass der Dienst wie erwartet funktioniert, aktivieren Sie ihn mit:
quelle
Ich möchte meine zwei Cent einwerfen, auch wenn dies eine alte Frage ist, die häufig gestellt wird, um eine einfache Sache zu tun - Autostart. Ich habe alle Lösungsvorschläge in allen Antworten auf diese Frage ausprobiert. Keiner von ihnen hat für mich gearbeitet. Ich benutze Raspberry PI Model 2 mit Raspbian.
Der einzige Weg, wie ich meine Anwendung erfolgreich zum Autostart bringen kann, ist über ein Skript wie folgt. Ich sage erfolgreich, weil meine Anwendung erwartungsgemäß gestartet wurde, ohne dass Probleme wie das Beginnen mit einem falschen Arbeitspfad aufgetreten sind.
1.Erstellen Sie eine leere Datei mit der Erweiterung .sh und benennen Sie sie nach Belieben.
2.Kopieren Sie und fügen Sie das folgende GENAU ein, außer ändern Sie "Ihren Anwendungsnamen" in den Skriptnamen, den Sie gerade erstellt haben.
Speichern Sie dann die Skriptdatei in Ihrem Anwendungsordner
Öffnen Sie dann den
/home/pi/.config/autostart
Ordner. Es könnte in Ihrem Fall anders sein. Öffnen Sie einfach Ihren privaten Ordner und aktivieren Sie die Ansicht versteckter Ordner. offen.config/autostart
. Wenn der Autostart-Ordner nicht angezeigt wird, erstellen Sie einen Ordner namens Autostart im Ordner .config.Im Autostart-Ordner müssen Sie eine Verknüpfung zu Ihrer Skriptdatei erstellen, die Sie wie folgt erstellt haben. Erstellen Sie eine leere Datei mit der Erweiterung
.desktop
.Kopieren und fügen Sie den folgenden in der leeren Desktop - Datei außer Sie ändern müssen
Comment
,Name
,Exec
,Path
undIcon
Feldwert.Speichern und schließen Sie die Datei, nachdem Sie alle erforderlichen Felder geändert haben. Du bist fertig. Probieren Sie es einfach aus.
quelle
/usr/local/bin/ApplicationName
...?home
wenn es sich um ein separates Gerät handelt), kein Problem mit der Skriptdatei (oder einer ausführbaren Datei) vorliegt, wenn das nicht verfügbar ist System fällt auf eine einzelne Benutzer-/bin/sh
Shell zurück! Heute ist diesystemd
ist Art und Weise sowohl zu montieren/
und/usr
vor PID 1 gestartet ...Ich hatte auch Probleme damit. Auf dem Raspberry Pi3 mit Raspbian habe ich Folgendes getan:
quelle
Auf dem Raspberry Pi3 mit Raspbian Stretch habe ich Folgendes getan:
Bearbeiten Sie die LXDE-pi-Autostartdatei
Fügen Sie dies am Ende dieser Datei hinzu
Speichern und neu starten
quelle
Methode 1:
Um einen Befehl bei der Anmeldung automatisch zu starten, fügen Sie den Befehl in eine Datei mit dem Namen ein
im Benutzerverzeichnis (zum Beispiel / home / pi)
Beispielsweise könnte die Datei enthalten
Zum Starten von Chromium im Vollbildmodus wird auf www.google.com verwiesen
Methode 2:
Diese Lösung funktioniert wirklich gut. Sobald der Browser geladen ist, befindet sich oben links auf dem Bildschirm ein kleines schwarzes Quadrat. Dies scheint ein allgemeiner Fehler zu sein (der in anderen Foren erwähnt wird), ansonsten verbirgt der Vollbildmodus alles außer der Browserseite.
Bearbeiten Sie die Autostart-Datei:
Kommentieren Sie alles mit einem '#' am Anfang jeder Zeile und fügen Sie dann die folgenden Zeilen hinzu
Starten Sie den Browser automatisch
Verwenden Sie bei Bedarf das Konfigurationstool, um das automatische Ausführen der GUI beim Einschalten zu aktivieren
Wenn Sie an die Eingabeaufforderung beenden zurück CTRL+ ALT+F1
CTRL+ ALT+F2
quelle
Sie können Ihr Skript am Ende der
/etc/profile
Datei platzieren.Andere Optionen haben bei mir nicht funktioniert, aber das liegt vielleicht daran, dass ich mein Skript auf dem Desktop platziert habe.
quelle
Erstellen Sie eine .sh-Datei mit den Befehlen 'python /path/to/your/script.py', geben Sie 'sudo nano /etc/rc.local' ein und geben Sie den Pfad zur .sh-Datei ein
Vor
Oder Sie könnten einfach eintippen
oder
Wenn Sie möchten, dass das Skript beim Start ausgeführt wird
innerhalb der Datei eingeben
quelle
es FUNKTIONIERT. (Bei jedem Neustart werden die folgenden Übermittlungen automatisch vorbereitet)
quelle
Das ist es, was ich normalerweise tue.
Bearbeiten Sie die Datei:
sudo nano .bashrc
Gehe zum Ende der Datei und schreibe:
sudo python mycode.py
Wenn die Ausgabe in einer TXT-Datei gespeichert werden soll, bearbeiten Sie den Code in Schritt 3 wie folgt:
sudo python mycode.py >> output.py
Hoffe das hilft!
quelle