Programma automatisch starten

      Reacties uitgeschakeld voor Programma automatisch starten

Vier gangbare manieren om een programma te starten als de Pi boot

De vier manieren zijn:

crontab, rc.local, autostart, systemd

crontab

Maak een job aan in crontab die begint met @reboot. Bijvoorbeeld:

@reboot python3 /home/pi/stopknop.py &

Let op, er zijn meerdere crontabs: gebruik sudo crontab -e om een job aan te maken in de crontab van root; en crontab -e om een job aan te maken voor de standaard user pi. Dit is vooral handig als je de Pi start in de CLI-modus; grafische programma’s kun je zo niet opstarten.
Meer voorbeelden van crontab vind je hier .

rc.local

Het nadeel is dat taken die je start via rc.local uitgevoerd worden voordat het windowsysteem opstart. Dat betekent, dat je geen toegang hebt tot onderdelen van de GUI.

autostart

Hiermee kun een grafisch (of console-)programma automatisch starten nadat de desktop is opgestart.
Voorheen onder Bullseye gebruikte Pi OS LXDE als desktopomgeving en kon je het bestand /etc/xdg/lxsession/LXDE-pi/autostart gebruiken.
Maar sinds Bookworm gebruikt Pi OS Wayland als display-server.
Daarom:
open het bestand ~/.config/wayfire.ini
Voeg onderaan de sectie [autostart] toe
Geef een willekeurige naam op met daarachter = en het commando dat je wilt uitvoeren.
Bijvoorbeeld:

[autostart]
voorbeeld = touch $HOME/Desktop/test

 

systemd

Dit is de nieuwste manier om programma’s automatisch te starten in Linux. Het is ook de meest gecompliceerde manier, maar je kunt er programma’s mee starten voordat LXDE start, het kan wachten totdat bepaalde andere processen (bv netwerk, graphical desktop) zijn opgestart, en het kan je programma gewoon steeds blijven starten totdat het werkt. In dat opzicht is het een betrouwbare manier om services te maken en te beheren die op de achtergrond draaien.

Mocht geen van bovengenoemde opties werken, en het systeem boot standaard in de cli, dan rest nog de mogelijkheid om het opstartcommando in de .bashrc te zetten van de betreffende user.
Dit is eigenlijk een ‘hack’, omdat .bashrc bedoeld is om de bash van de betreffende user persoonlijk in te richten. Want in elke console/terminal die je voor deze user vervolgens opent wordt een instantie van hetzelfde programma opnieuw gestart…