In sommige gevallen is het nodig om je script uit te voeren wanneer het systeem opstart. Zulke gevallen zijn bijvoorbeeld de noodzaak om de schermresolutie te wijzigen, bepaalde toepassingen te starten en een bepaald hulpprogramma bij te werken. Een script uitvoeren kan op verschillende manieren. Dit kan door gebruik te maken van een grafische shell of het systemd initialisatiesysteem, dat nu in bijna alle distributies wordt gebruikt.
Het eerste wat je moet doen is een script maken op een handige plaats en het uitvoeren:
$ sudo gedit /script_path/script_name.sh
#!/bin/bash
echo "Hello world"
Dit script zal "Hallo wereld" berichten weergeven aan de gebruiker. Zodra het programma klaar is, moet het uitvoerbaar worden gemaakt. Hiervoor wordt het volgende commando gebruikt:
$ sudo chmod ugo+x /script_path/script_name.sh
Vervolgens moet je in het hoofdmenu van het systeem het hulpprogramma "Applicaties automatisch uitvoeren" starten.
Klik op de knop "Toevoegen" en voer het volledige pad naar het scriptbestand in het veld "Opdracht" in. Je kunt op de knop "Bladeren" drukken, het scriptbestand zoeken en selecteren en op "Toevoegen" drukken.
Vanaf nu wordt het programma elke keer uitgevoerd als je de grafische shell van Ubuntu start.
Gebruik een speciaal commando om een systemd servicebestand te maken
Dit is het commando:
sudo systemctl edit --force myscript
You need to add the contents to this file:
[Unit]
Description=My Script Service
After=multi-user.target
[Service]
Type=idle
ExecStart=/full/path/to/script/script_name.sh
[Install]
WantedBy=multi-user.target
Vervolgens moet je in de regel met de naam ExecStart aan een van de volgende eisen voldoen: schrijf het pad naar het script of de opdracht die moet worden uitgevoerd. Daarna wordt het script toegevoegd aan de autoloader:
$ sudo systemctl daemon-reload
$ sudo systemctl enable mysrcipt
Het programma start na de systeeminitialisatie. Hiervoor kun je de "oude" methode gebruiken: je kunt rc.local
gebruiken om het bestand /etc/rc.local
aan te maken en het pad ernaar toe te schrijven in de regel ExecStart van het servicebestand.