Dans certains cas, il est nécessaire d'exécuter votre script au démarrage du système. Il peut s'agir de modifier la résolution de l'écran, de lancer certaines applications ou de mettre à jour un utilitaire particulier. L'exécution d'un script peut se faire de plusieurs manières. Il est possible d'utiliser un shell graphique ou le système d'initialisation systemd, qui est désormais utilisé dans presque toutes les distributions.
La première chose à faire est de créer un script dans un endroit pratique et de l'exécuter :
$ sudo gedit /script_path/script_name.sh
#!/bin/bash
echo "Hello world"
Ce script affichera des messages "Hello world" à l'utilisateur. Une fois le programme prêt, il faut le rendre exécutable. Pour ce faire, la commande suivante est utilisée :
$ sudo chmod ugo+x /script_path/script_name.sh
Ensuite, dans le menu principal du système, il faut lancer l'utilitaire "Exécuter automatiquement des applications".
Cliquez sur le bouton "Ajouter" et entrez le chemin complet du fichier script dans le champ "Commande". Vous pouvez appuyer sur le bouton "Parcourir", trouver et sélectionner le fichier script et appuyer sur "Ajouter".
À partir de maintenant, le programme sera exécuté chaque fois que vous démarrerez le shell graphique Ubuntu.
Utilisez une commande spéciale pour créer un fichier de service Systemd
Voici la commande :
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
Ensuite, dans la ligne appelée ExecStart, vous devez remplir l'une des conditions suivantes : écrire le chemin d'accès au script ou à la commande à exécuter. Le script est ensuite ajouté à l'autochargeur :
$ sudo systemctl daemon-reload
$ sudo systemctl enable mysrcipt
Le programme démarrera après l'initialisation du système. Pour ce faire, vous pouvez utiliser l'"ancienne" méthode : vous pouvez utiliser rc.local
pour créer le fichier /etc/rc.local
et écrire le chemin d'accès à ce fichier dans la ligne ExecStart du fichier de service.