Ceci est une ancienne révision du document !



Comment créer un nouveau service avec Systemd

Ce tutoriel décrit la démarche à suivre pour faire transformer un programme en un service Systemd pouvant être lancé automatiquement au démarrage du système.

Pour notre exemple, nous allons créer un service pour lancer le daemon Deluge au démarrage (deluged), mais cela peu s'appliquer à n'importe quel programme.

Systemd (Wikipedia) remplace System V (Wikipedia) et Upstart en tant que système d'initialisation par défaut dans Ubuntu depuis la versio 15.04 Vivid, et depuis la version 8 dans Debian (Jessie).

Deluged ne gère pas les paramètres d'arrêt ou de relance, nous devons donc créer un script qui s'en chargera. On pourra stocker ce script dans /usr/local/bin.

cat >/usr/local/bin/deluge.sh

Puis collez le code ci-dessous (<CTRL>+<D> pour finir).

#! /bin/sh
# /usr/local/bin/deluge.sh
#

function d_start
{
        echo "Deluge : starting service"
        deluged --pidfile=/tmp/deluge.pid
        echo "PID is $(cat /tmp/deluge.pid)"
}

function d_stop
{
        echo "Deluge : stopping service (PID=$(cat /tmp/tunnel.pid))"
        kill $(cat /tmp/tunnel.pid)
        rm /tmp/tunnel.pid
}

# Gestion des instructions du service
case "$1" in
        start)
                d_start
                ;;
        stop)
                d_stop
                ;;
        reload)
                d_stop
                sleep 1
                d_start
        *)
        echo "Usage: $0 {start|stop|reload}"
        exit 1
        ;;
esac

exit 0

Dans Systemd , les services sont définis dans des fichiers .service, situé dans /etc/systemd/system/.

Créons un fichier de service pour notre programme :

cat >/etc/systemd/system/deluge.service

Puis collez le code ci-dessous (<CTRL>+<D> pour finir).

[Unit]
Description=Deluge daemon
After=network.target auditd.service

[Service]
Type=forking
ExecStart=/usr/local/bin/deluge.sh start
ExecStop=/usr/local/bin/deluge.sh stop
ExecReload=/usr/local/bin/deluge.sh stop

[Install]
WantedBy=multi-user.target

Voila, vous savez maintenant faire le café avec Ubuntu !

Si votre café est trop fort, saisissez la commande suivante dans un terminal: …

  • utilisateurs/stepho/creer_un_service_avec_systemd.1452595535.txt.gz
  • Dernière modification: Le 12/01/2016, 11:45
  • par stepho