In alcuni casi, è necessario eseguire lo script all'avvio del sistema. Ad esempio, è necessario modificare la risoluzione dello schermo, avviare determinate applicazioni e aggiornare una particolare utility. L'esecuzione di uno script può essere realizzata in diversi modi. Si può utilizzare una shell grafica o il sistema di inizializzazione systemd, ormai utilizzato in quasi tutte le distribuzioni.
La prima cosa da fare è creare uno script in una posizione comoda ed eseguirlo:
$ sudo gedit /script_path/script_name.sh
#!/bin/bash
echo "Hello world"
Questo script visualizzerà i messaggi "Hello world" all'utente. Una volta che il programma è pronto, deve essere reso eseguibile. A tale scopo si utilizza il seguente comando:
$ sudo chmod ugo+x /script_path/script_name.sh
Successivamente, nel menu principale del sistema, è necessario lanciare l'utility "Esecuzione automatica delle applicazioni".
Fare clic sul pulsante "Aggiungi" e inserire il percorso completo del file di script nel campo "Comando". È possibile premere il pulsante "Sfoglia", trovare e selezionare il file di script e premere "Aggiungi".
D'ora in poi, il programma verrà eseguito ogni volta che si avvia la shell grafica di Ubuntu.
Utilizzate un comando speciale per creare un file di servizio systemd
Questo è il comando:
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
Quindi, nella riga chiamata ExecStart è necessario soddisfare uno dei seguenti requisiti: scrivere il percorso dello script o del comando da eseguire. Dopodiché lo script viene aggiunto all'autoloader:
$ sudo systemctl daemon-reload
$ sudo systemctl enable mysrcipt
Il programma verrà avviato dopo l'inizializzazione del sistema. A questo scopo, si può usare il "vecchio" metodo: si può usare rc.local
per creare il file /etc/rc.local
e scriverne il percorso nella riga ExecStart del file di servizio.