Raspberry Pi Autostart von Programmen

In diesem Artikel „Raspberry Pi Autostart von Programmen“ möchte ich Euch zeigen, wie man ein Autostart Script erstellt und einbindet.
Wenn einmal der Raspberry Pi konfiguriert ist und man somit seine Standardprogramme laufen lässt wie z.B. den Crypto Miner für unsere AltCoins, macht es Sinn diese Programme direkt nach dem Booten automatisch starten zu lassen. In meinem Beispiel möchte ich den Crypto Miner starten.

Raspberry Pi autostart Skript erstellen

Das Script wird im Verzeichnis /etc/init.d/ erstellt. Im Script wird dann das Programm aufgerufen, welches man starten möchte. Im ersten Schritt gebt Ihr folgenden Befehl ein:

sudo nano /etc/init.d/ScriptName

Jetzt öffnet sich der Editor und Ihr könnt mit der Eingabe des Scripts beginnen.

#! /bin/sh
# BEGIN INIT INFO
# Provides: Das zu startende Programm
# Required-Start: $syslog
# Required-Stop: $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Das zu startende Programm
# Description:
### END INIT INFO
 
case "$1" in
 start)
 echo "Programm wird gestartet"
 # Starte Programm - Pfad zum Programm
 /home/pi/m-cpuminer-v2/m-minerd -a m7mhash -o stratum+tcp://xmg.suprnova.cc:7128 -u Benutzername.Worker -p Passwort
 ;;
 stop)
 echo "Programm wird beendet"
 # Beende Programm
 killall m-minerd
 ;;
 *)
 echo "Benutzt: /home/pi/m-cpuminer-v2/m-minerd {start|stop}"
 exit 1
 ;;
esac
 
exit 0

Abspeichern mit Strg + x, dann y(j) und Enter.

Anstelle vom CPU Miner kann natürlich jedes andere Programm gestartet werden. Weitere Informationen findet Ihr hier.

Jetzt müssen die Dateirechte gesetzt werden (lesen & schreiben), das macht Ihr mit folgendem Befehl:

sudo chmod 755 /etc/init.d/ScriptName

Testen könnt ihr das Script mit folgendem Befehl:

sudo /etc/init.d/ScriptName start

Stoppen könnt Ihr das Script mit:

sudo /etc/init.d/ScriptName stop

Script einbinden

Damit das Script nun auch beim hochfahren das Raspberry Pi gestartet wird müsst Ihr noch folgenden Befehl ausführen:

sudo update-rc.d ScriptName defaults

Nun sollte Euer gewünschtes Programm nach dem Bootvorgang starten.
Wenn Ihr Euer Programm später einmal nicht mehr starten möchtet, könnt Ihr es mit folgendem Befehl wieder aus dem Autostart entfernen:

sudo update-rc.d -f ScriptName remove

Das Script mit dem Login aktivieren

Die erste Vorgehensweise funktioniert nicht bei allen Images für den Raspberry Pi, bei meinem Crypto Mining Image, welches ein experimentelles 64 Bit Image ist, hatte ich keinen Erfolg. Hier musste ich anders vorgehen, mein Ziel war es, dass der Pi sich nach dem Starten automatisch als User „pi“ einloggt und dann das Programm, in meinem Fall den CPU Miner, startet.

Automatisches Login einrichten

Damit der Raspberry Pi sich nach dem Booten automatisch als User „Pi“ anmeldet muss wie folgt vorgegangen werden.

Schritt 1 – Die autologin.conf Datei bearbeiten

sudo mkdir -pv /etc/systemd/system/getty@tty1.service.d
sudo nano /etc/systemd/system/getty@tty1.service.d/autologin.conf

sudo mkdir -pv /etc/systemd/system/getty@tty1.service.d- Raspberry Pi Autostart

Schritt 2 – Den Code hinzufügen

[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin "Login Name" --noclear %I 38400 linux

sudo nano /etc/systemd/system/getty@tty1.service.d/autologin.conf - Raspberry Pi Autostart

Jetzt die Datei mit Strg+x, y(j) und Enter abspeichern. Jetzt könnt Ihr den Pi mit dem Kommando

sudo reboot now

neu starten und der Raspberry sollte sich nun mit dem von Euch unter „Login Name“ eingetragenen Namen anmelden.

Schritt 3 – Das autostart Script einbinden

Um unser oben erstelltes Script nun automatisch starten zu lassen, muss die „Profile“ Datei im Ordner /etc bearbeitet werden. Das macht Ihr mit folgendem Befehl:

sudo nano /etc/profile

In der Datei scrollt Ihr nun nach unten und fügt an letzter Stelle den Befehl zum starten des Scripts ein.

sudo /etc/init.d/ScriptName start

sudo nano /etc/profile - Raspberry Pi Autostart

Jetzt wie immer mit Strg+x, y(j) und Enter abspeichern.

Der Raspberry Pi Autostart sollte jetzt funktionieren, der Pi bootet, meldet sich automatisch an und startet das Script.

Eine alternative Möglichkeit den Miner zu starten

Alternativ kann das Script als systemd Service eingebunden werden.
Dafür einfach folgende Datei erzeugen: sudo nano /etc/systemd/system/miner.service
Der Inhalt:
###
[Unit]
Description=Miner

[Service]
Type=simple
User=pi
ExecStart=/home/pi/m-cpuminer-v2/m-minerd -a m7mhash -o stratum+tcp://xmg.suprnova.cc:7128 -u Benutzername.Worker -p Passwort

[Install]
WantedBy=multi-user.target
###

Danach wird das Script per

sudo systemctl enable miner.service

aktiviert. Ihr könnt den Status per

sudo sudo service miner status

einsehen oder die Ausgaben per

sudo journalctl -u miner -f

verfolgen, aber selbst wenn Ihr euch ausloggt läuft der Miner weiter.

Ich bin auf Euer Feedback gespannt und hoffe, dass der Artikel hilfreich für Euch ist. Gerne könnt Ihr auch auf Facebook der TechGeeks Gruppe beitreten oder meldet Euch bei meinem Newsletter an.

Das könnte dich auch interessieren …

5 Antworten

  1. Timo sagt:

    Beim Anmelden wird jetzt das Skript und damit der miner gestartet. Aber wie kommt man aus der Dauerschleife wieder raus? Mit jeder Anmeldung wird jetzt ein neuer miner gestartet, also auch über ssh zugriff.

  2. Ernestopheles sagt:

    Ich habe auf dem Pi3B+ unter raspbian das Autostart-Skript erstellt und zunächst via sudo update-rc.d ScriptName defaults eingebunden, ohne Erfolg. Dann habe ich die zweite Möglichkeit benutzt, also via /etc/profile. Nun funktioniert der Autostart, allerdings bekomme ich einen schwarzen Bildschirm. Mein Pi läuft direkt mit angeschlossenem Monitor und Tastatur/Mouse, nicht über SSH. SSH habe ich nicht aktiviert.
    Wie bekomme ich nun Zugriff?

    • Michael sagt:

      Mit der zweiten Methode wird das Skript direkt nach dem Login gestartet, als wenn Du direkt den Befehl eingibst. Du kannst dein Skript mit Strg+C abbrechen, dann solltest Du auch wieder zugriff bekommen…
      Ansonsten ein Kommentar von Hans aus meinem Bitcoin Beitrag:
      ————————————————————
      Idealerweise richtet ihr den Miner als systemd service ein. Dann ist das nicht an irgendwelche Logins gekoppelt.
      Dafür einfach folgende Datei erzeugen: sudo nano /etc/systemd/system/miner.service
      Der Inhalt:
      ###
      [Unit]
      Description=Miner

      [Service]
      Type=simple
      User=pi
      ExecStart=/home/pi/m-cpuminer-v2/m-minerd -a m7mhash -o stratum+tcp://xmg.suprnova.cc:7128 -u „User.Gerät“ -p „Pass“

      [Install]
      WantedBy=multi-user.target
      ###
      Bitte schaut nach ob bei euch der Pfad zum miner stimmt.
      Und dann per sudo systemctl enable miner.service aktivieren.
      Dann startet der Miner auch automatisch mit.
      Ihr könnt den Status per sudo service miner status einsehen oder die Ausgaben per sudo journalctl -u miner -f verfolgen, aber selbst wenn ihr euch ausloggt läuft der Miner weiter.
      ——————————————-

      Viele Grüße
      Michael

      • Ernestopheles sagt:

        Hallo Michael,

        damit (Miner als systemd service) klappt es nun endlich.

        Vielen vielen Dank!

        Habe verschiedene Methoden ausprobiert, die aber nicht zum gewünschten Erfolg führten. Z.B. mit cronjob startet der Miner, allerdings ohne etwas zu leisten (0 CPU). Nun hab ich es endlich, danke!

        Viele Grüße,
        Ernestopheles

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*