Outils pour utilisateurs

Outils du site


informatique:lancer_un_programme_au_demarrage

Lancer un programme au démarrage

On peut souvent avoir besoin d'un programme, d'un service ou d'un script qui se lance au démarrage. Dans les dernières versions de Raspbian, c'est le système d'initialisation systemd qui est utilisé. La procédure pour démarrer un programme au démarrage n'est plus la même qu'avec les anciens systèmes d'initialisation.

D'abord, je copie le script du service ssh pour partir d'une base fonctionnelle :

$ sudo cp /etc/systemd/system/multi-user.target.wants/ssh.service /etc/systemd/system/multi-user.target.wants/MY-SERVICE.service

Ensuite, on modifie le fichier MY-SERVICE.service :

$ sudo nano /etc/systemd/system/multi-user.target.wants/MY-SERVICE.service
$ sudo cat /etc/systemd/system/multi-user.target.wants/MY-SERVICE.service
[Unit]
Description=Script pour lancer MY-SERVICE
 
[Service]
ExecStart=/home/pi/my-service.sh
 
[Install]
WantedBy=multi-user.target

Ensuite, on active le service avec la commande suivante:

$ sudo systemctl enable MY-SERVICE.service
Created symlink from /etc/systemd/system/multi-user.target.wants/MY-SERVICE.service to /lib/systemd/system/MY-SERVICE.service.

On vérifie :

$ sudo systemctl status MY-SERVICE.service
(...)

On relance le daemon avec systemctl, on relance le service MY-SERVICE et on vérifie son statut:

$ sudo systemctl daemon-reload
$ sudo systemctl restart MY-SERVICE.service
$ sudo systemctl status MY-SERVICE.service
(...)

Un exemple pour un programme C# sous Mono qui doit tourner en permanence :

[Unit]
Description=Script du projet
After=network.target
 
[Service]
ExecStart=/usr/bin/mono /home/pi/le-projet.exe
Restart=always
 
[Install]
WantedBy=multi-user.target

Sources

informatique/lancer_un_programme_au_demarrage.txt · Dernière modification : 2020/08/09 13:03 de 127.0.0.1