Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
utilisateurs:stepho:creer_un_service_avec_systemd [Le 12/01/2016, 11:45] stepho |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>Vivid Wily tutoriel systemd service BROUILLON}} | ||
- | ---- | ||
- | ====== 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. | ||
- | |||
- | ===== Contexte ===== | ||
- | [[:Systemd]] ([[https://fr.wikipedia.org/wiki/Systemd|Wikipedia]]) remplace [[:script_sysv|System V]] ([[https://fr.wikipedia.org/wiki/UNIX_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 [[https://www.debian.org/|Debian]] (Jessie). | ||
- | |||
- | ===== Pré-requis ===== | ||
- | * Disposer des [[:sudo|droits d'administration]] | ||
- | * Savoir utiliser le [[:terminal]] | ||
- | |||
- | ===== Création d'un script d'encapsulation du programme ===== | ||
- | 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''. | ||
- | |||
- | <code>cat >/usr/local/bin/deluge.sh</code> | ||
- | Puis collez le code ci-dessous (<CTRL>+<D> pour finir). | ||
- | <code> | ||
- | #! /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 | ||
- | </code> | ||
- | |||
- | ===== Création du fichier de service Systemd ===== | ||
- | 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 : | ||
- | <code>cat >/etc/systemd/system/deluge.service</code> | ||
- | Puis collez le code ci-dessous (<CTRL>+<D> pour finir). | ||
- | <code> | ||
- | [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 | ||
- | </code> | ||
- | |||
- | |||
- | ===== Autres étapes ===== | ||
- | |||
- | ===== Conclusion ===== | ||
- | Voila, vous savez maintenant faire le café avec Ubuntu ! | ||
- | |||
- | ===== Problèmes connus===== | ||
- | |||
- | Si votre café est trop fort, saisissez la commande suivante dans un [[:terminal]]: ... | ||
- | |||
- | ===== Voir aussi ===== | ||
- | |||
- | * [[http://forum.ubuntu-fr.org/viewtopic.php?id=64840|Discussion "Tutoriel pour faire le café"]] sur le forum ubuntu-fr | ||
- | * https://wiki.debian.org/fr/systemd | ||
- | * http://www.freedesktop.org/wiki/Software/systemd/ | ||
- | ---- | ||
- | //Contributeurs principaux : [[:utilisateurs:stepho]].// |