Lancer un script comme un service – Ubuntu

Comme cas pour illustrer cette démonstration, je vais lancer MusicIP au démarrage de l’ordinateur.

Des informations supplémentaires peuvent être trouvées en consultant le manuel de systemd

man systemd.unit

Pour débuter, il faut créer la configuration du service à démarrer.

sudo nano /etc/systemd/system/musicip_server.service
[Unit]
After=network.service

[Service]
Type=simple
User=lafontaj
Group=sambashare
ExecStart=/home/lafontaj/scripts/autostart_musicip.sh
TimeoutStartSec=0
RemainAfterExit=yes

[Install]
WantedBy=default.target

After: Informe systemd du moment ou le script doit être exécuté.  Dans notre exemple, le script est exécuté après la connexion réseau. Un autre exemple serait exécuté après le lancement de mysql.target etc.

ExecStart: Ce champs informe du chemin complet vers le script à exécuté au démarrage.

WantedBy: Ce champs informe qu’elle est l’unité cible de démarrage qui doit être utilisée au démarrage de Ubuntu.

Créer le script qui sera exécuté pour ce service.

#!/bin/bash

#Démarrer MusicIP server
/home/lafontaj/logiciels/MusicIP/MusicMagicMixer/MusicMagicServer start

Ajuster les permissions de l’unité systemd ainsi que le script:

sudo chmod 744 /home/lafontaj/scripts/autostart_musicip.sh
sudo chmod 664 /etc/systemd/system/musicip_server.service

Activer ensuite le service:

sudo systemctl daemon-reload
sudo systemctl enable musicip_server.service

Voici le retour de la commande précédente:

Created symlink /etc/systemd/system/default.target.wants/musicip_server.service → /etc/systemd/system/musicip_server.service.

Si vous devez déactiver le service:

sudo systemctl disable musicip_server.service

Voici le retour de la commande précédente:

Removed /etc/systemd/system/default.target.wants/musicip_server.service.

Démarrer le service

sudo service musicip_server start

Vérifier si le sevice est bien démarré:

sudo systemctl status musicip_server