Comment rédiger un service Systemd simple

Comment rédiger un service Systemd simple

Objectif

Écrivez un service SystemD de base.

Distribution

Cela fonctionnera sur n'importe quelle distribution exécutant Systemd.

Exigences

Une installation Linux fonctionnelle avec Systemd et Root Privileges.

Conventions

  • # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
  • $ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier

Introduction

Systemd est presque inévitable. Il a permis de nombreux aspects de l'écosystème Linux qu'il est nécessaire pour tout administrateur Linux de connaître au moins les bases de son fonctionnement.

L'un des principaux arguments de vente de Systemd est la facilité d'écriture de fichiers de service. Ce ne sont pas des scripts. Au lieu de cela, ce sont des fichiers de configuration de base. Bien qu'ils puissent devenir complexes, ils sont généralement très simples.

Créer le fichier

Les services SystemD existent à / etc / systemd / système. Si vous regardez votre système, ils sont tous là. En fait, ouvrez SSHD.service. Numérisez et voyez ce qu'il y a. Vous ne saurez probablement pas tout, mais vous pouvez certainement en comprendre une partie et reconnaître à quel point il est simple.

N'importe quel .service Le fichier que vous créez dans ce répertoire peut être exécuté en tant que service, si vous le construisez correctement.

Créer un fichier que vous souhaitez avec le .service extension.

Unité

La première section que vous devez écrire est le [Unité]. Pour un service de base, tout ce dont vous avez besoin est une description de base de votre service. Démarrez-le de cette façon.

[Unité] Description = un peu sur votre service

Service

Le [Service] Le bloc est la majeure partie du contenu de la configuration. C'est le bloc qui contient les directives qui indiquent au service comment et où courir.

Créer le bloc. La première chose que vous devez présenter est le type de service qu'il est. Ceci est juste un service simple, alors dites à Systemd que.

Type = simple

Ce bit suivant est probablement le plus important. Vous devez dire à Systemd quoi exécuter. C'est en fait une commande régulière ou un appel à un script. Jetez un œil à l'exemple.

Execstart = / opt / scripts / run-backup.sh --full --to-externe

De toute évidence, vous n'avez pas ce script, mais vous pouvez voir comment vous utiliseriez simplement le même type de commande que vous exécutez normalement.

SystemD est également très capable de redémarrer les services ratés. Ceci est un autre paramètre que vous pouvez définir dans cette configuration. Si vous voulez qu'il redémarre en échoue, essayez ce qui suit.

Redémarrer = à l'on

Il pourrait également être utile pour spécifier un fichier PID pour votre service, s'il en nécessite un.

Pidfile = / tmp / vopervice.piquer

Si vous voulez ou avez besoin d'un utilisateur ou d'un répertoire spécifique pour vous entraîner, vous pouvez le faire aussi.

User = srvuser workingDirectory = / var / varfervice

Vous pouvez également définir un répertoire d'exécution et les autorisations de fichier de ce répertoire lors de leur utilisation.

RuntimeDirectory = votre réserve runtimeDirectoryMode = 0755

Il y a beaucoup plus que vous pouvez faire, mais avec ces bases, vous devriez être en mesure de créer vos propres services simples et de travailler avec des bases existantes.

Installer

Enfin, il y a le [Installer] bloc. Tout ce que vous devez faire ici est de spécifier comment votre service doit être activé. La façon la plus courante de le faire est avec multi-utilisateurs.cible.

[Installer] WantedBy = Multi-utilisateur.cible

Réflexions de clôture

C'est à peu près tout ici est pour les bases. Vous pouvez certainement créer et modifier des services de base et même légèrement plus avancés. Espérons que vous gagnerez plus de confiance en travaillant avec SystemD et de vous plus à l'aise de créer vos propres fichiers de service avec plus d'expérience.

Tutoriels Linux connexes:

  • Choses à installer sur Ubuntu 20.04
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Commandes Linux: les 20 meilleures commandes les plus importantes que vous devez…
  • Téléchargement Linux
  • Meilleure distribution Linux pour les développeurs
  • Installation OpenLitesPeed sur Linux
  • Fichiers de configuration Linux: 30 premiers
  • MX Linux vs Ubuntu
  • Linux peut-il obtenir des virus? Exploration de la vulnérabilité de Linux…
  • Commandes Linux de base