Raspberry Pi Autostart?


22.11.2023, 18:33

Macht es Probleme, dass ich einen cd-Command in dem Skript nutze?

anTTraXX  22.11.2023, 19:34

Wofür willst du das cd command nutzen?

assistantmaster 
Fragesteller
 23.11.2023, 06:54

Um danach einen Command an einem anderen Ort auszuführen

2 Antworten

Crontab oder systemd wäre hier das was du nutzen kannst.

Crontab

Einfach in der CLI zum aufrufen der Crontab Datei

crontab -e

Eintragen und mit [Enter] bestätigen.

Er wird dich nun fragen welchen Editor du wählen willst, tue dir selbst einen Gefallen und nutze nano (VI ist für bspw hass)

Nun öffnet sich die crontab Datei, dort sollte auch schon was drinnen stehen. Dies ignorieren wir und tragen in der letzten Zeile

@reboot Befehl zum starten

Ein und betätigen erneut [Enter], denn die Datei muss mit einer Leerzeile abschließen.

Nun [Strg] + [O] zum speichern

[Strg] + [X] zum beenden.

Nun erfolgt eine Meldung das der Crontab erfolgreich installiert wurde.

Systemd

Dafür brauchen wir

  • Skript
  • Service
Skript

Dafür erstellst du ein Skript

sudo nano  /path/to/script.sh

Mit folgendem Inhalt

#!/bin/bash

Das was das Skript halt machen soll, oder eben der Befehl

Das Skript muss nun ausführenbar gemacht werden

sudo chmod -x  /path/to/script.sh

Ausprobieren ob dein Skript macht was es soll kannst du mit

sh  /path/to/script.sh
Service

Danach brauchen wir noch den Service der dieses Skript ausführt

sudo nano /lib/systemd/system/Name.service

Diese Datei muss folgenden inhalt haben

[Unit]
Description=was macht der Service

[Service]

ExecStart=/path/to/script.sh
Type=simple

[Install]
WantedBy=multi-user.target

Das Ganze denn speichern und

sudo chmod 644 /lib/systemd/system/Name.service 

Danach

sudo systemctl enable Name.service 
sudo systemctl start Name.service

Ob der Service Job läuft siehat du hier

sudo systemctl status Name.service

Wie du dir denken kannst habe ich natürlich ein paar Platzhalter verwendet

/path/to/script.sh >>> das wäre dort wo du deine Skripte speichern willst und halt auch den Namen dafür verwenden

Name.service >>> hier ist Name der Platzhalter und kann von dir relativ frei gewählt werden (sofern der Name noch frei ist)

Das das Ganze über das Terminal einzugeben ist, erklärt sich hoffentlich selbst.


ntechde  22.11.2023, 18:59

Ja sehr gut - kurz und knackig!! (dafür war ich jetzt zu faul! ;-)

1
ntechde  22.11.2023, 19:06
@anTTraXX

Über kurz oder lang wird sich jeder mit systemd befassen müssen. Einerseits ist es wirklich besser und andererseits wird init.d immer weniger Bedeutung haben.

Insofern hast Du einen guten Einstieg geschrieben - auch wenn es da noch endlos mehr zu beleuchten gibt!

0
anTTraXX  22.11.2023, 19:13
@ntechde

Danke, viele Anleitungen sind leider echt für Idioten (so wie ich einer bin, und das meine ich nicht dispektierlich) oftmals nicht zu gebrauchen und ich finde man sollte immer davon ausgehen das jemand wirklich null Ahnung hat (so wie zu meiner Zeit damals 😁)

0
ntechde  22.11.2023, 19:16
@anTTraXX

Da hast Du nicht Unrecht! Viele Anleitungen setzen sehr viel voraus und sind deshalb für Anfänger kaum brauchbar! Damit tue ich mich mitunter schwer - ich bin kein Anfänger, ich musste die letzten 40 Jaahre davon leben :-D

0
anTTraXX  22.11.2023, 19:20
@ntechde

Das ist das Problem.

Und das ist manchmal auch das Problem von Linux, die Community ist dazu noch toxisch, ich habe versucht nen Drucker zu installieren und hatte ne Frage weil der Drucker nicht nativ auf Linux läuft.... Kannst du dir nicht ausdenken.

1
ntechde  22.11.2023, 19:32
@anTTraXX

Leider wahr! Viele sitzen auf einem unglaublich hohen Ross! Aber es gibt auch reichtlich nette und hilfsbereite Leute!

0
ntechde  22.11.2023, 19:39
@anTTraXX

Ich wurde auch schon von ganz oben runter abgekanzelt! Dann habe ich meinen "abgelehnten" Vorschlag öffentlich gemacht und bekam viel Zuspruch! Hat auch wieder nicht gepasst :-D

1

Dein script steht in RC.d

Und in alle rcx.d kommt ein symbolischer Link.

Besser wäre es natürlich, das script mit systemd zu steuern.


assistantmaster 
Fragesteller
 22.11.2023, 18:54

Wie funktioniert das?

0
ntechde  22.11.2023, 18:56
@assistantmaster

Es gibt jede Menge Anleitungen zu systemd. Ich möchte hier nicht noch eine schreiben.

Aber versuchs doch erst mal mit den symolic Links:

ln -s scriptname /etc/rc3.d/   # undsoweiter
1