Comment créer un fichier de service sous Linux

Comment Creer Un Fichier De Service Sous Linux



Le système d'initialisation systemd fait désormais partie de presque toutes les distributions Linux. En tant qu'administrateur ou développeur, vous créez des services que systemd peut gérer. Par exemple, si vous souhaitez lancer des services au démarrage ou si vous souhaitez les contrôler manuellement, cela peut être fait via un fichier de service personnalisé.

Dans ce didacticiel, je vais expliquer comment créer un fichier de service systemd sous Linux.







Qu'est-ce qu'un fichier de service

Avant d'aller plus loin, comprenons ce qu'est un fichier de service systemd et comment il est créé sous Linux.



Un fichier de service systemd contient des instructions définies pour que systemd gère le service. Il contient généralement trois sections :



  • Unité
  • Service
  • Installer

Le Unité La section contient des informations de base sur le service, telles qu'une brève description, des pages de documentation et un chemin d'accès aux dépendances. Le Installer La section est facultative, mais elle gère généralement l'état du système dans lequel le service doit être activé.





Le Service La section est normalement prise en sandwich entre les sections Unité et Installation. Il contient principalement le type de service et le chemin des exécutables qui sont essentiellement des commandes à exécuter lors de l'appel du service par systemd.

Voici à quoi ressemble une structure de fichiers de service typique.



[ Unité ]

Directive1 = instruction

Directive2 = instruction



[ Service ]

Directive1 = instruction

Directive2 = instruction



[ Installer ]

Directive1 = instruction

Directive2 = instruction

Ici, les directives sont des paramètres qui prennent leur entrée respective. Par exemple, le Description La directive prend une chaîne du nom du service. D'une manière similaire, ExécuterDébut prend en compte le chemin complet de l'exécutable.

Un fichier de service typique de ssh.service est donné ci-dessous.

Comment créer un fichier de service

Pour créer un service systemd, il est nécessaire de comprendre les directives clés. Dans ce guide, je couvrirai les directives essentielles qui peuvent vous aider à créer un fichier de service entièrement fonctionnel.

La création d'un fichier de service implique plusieurs étapes, commençons par créer le fichier de script.

Note: Pour continuer avec la méthode mentionnée ci-dessous, vous devez disposer des privilèges root.

1. Création d'un script

La première étape implique la création du code qui sera exécuté lorsque le service commencera à fonctionner. Pour ce tutoriel, je crée un script bash qui stockera la disponibilité du système Linux et l'utilisation de la mémoire.

Créons un script dans le répertoire courant avec le nom de monscript.sh en utilisant l'éditeur nano.

sudo nano monscript.sh

Maintenant, ajoutez le script ci-dessous dans le fichier et enregistrez-le en appuyant sur ctrl+x et puis et .

#!/bin/bash

écho '>>Voici la disponibilité de votre système<<' > maison / lui-même / monfichier.txt

disponibilité >> maison / lui-même / monfichier.txt

écho '>>Voici l'utilisation de la mémoire de votre système<<' >> / maison / lui-même / monfichier.txt

gratuit -m >> maison / lui-même / monfichier.txt

dormir 60

Le script contient quelques chaînes d'écho et disponibilité et gratuit commandes.

Le disponibilité La commande sous Linux est utilisée pour imprimer la durée de fonctionnement d'un système et le nombre d'utilisateurs connectés avec une charge système moyenne des dernières 1, 5 et 15 minutes.

Le gratuit La commande est utilisée pour imprimer l'utilisation de la mémoire du système, tandis que la commande -m L'indicateur est utilisé pour imprimer la sortie dans Mo .

Pour enregistrer des informations dans un fichier texte, nous utilisons des opérateurs spéciaux appelés opérateurs de redirection. Le > L’opérateur est utilisé pour insérer du texte dans le fichier texte mentionné. Toutefois, si le fichier n'existe pas déjà, il sera créé. Tandis que le >> L’opérateur est utilisé pour ajouter le texte dans le fichier. Le dormir La commande est utilisée pour maintenir l’activité du service pendant une durée minimale d’une minute.

Maintenant, rendez le script exécutable en accordant les autorisations nécessaires.

sudo chmod +x monscript.sh

Le script a maintenant l'autorisation d'exécution, passons à la section suivante.

Note: Pour que le fichier de service soit exempt d'erreurs, utilisez le chemin absolu du fichier dans le script bash.

2. Création d'un fichier .service

Ensuite, créez un fichier de service avec le .service extension. Le fichier de service doit être créé dans le /etc/systemd/système annuaire. Tout d’abord, accédez à ce répertoire à l’aide du CD commande.

CD / etc. / système / système

Vous pouvez créer le fichier de service dans n’importe quel répertoire, puis déplacer ultérieurement ce fichier vers ce répertoire.

Je crée un fichier de service avec monservice.service nom.

sudo nano monservice.service

Maintenant, ajoutez les lignes suivantes au fichier.

[ Unité ]

Description =Mon service

[ Service ]

Taper =simple

ExécuterDébut = / poubelle / frapper / maison / lui-même / script.sh

Redémarrage =en cas d'échec

[ Installer ]

RecherchéPar = multi-utilisateur.cible

Noter que [Unité], [Service], et [Installer] sont sensible aux majuscules et minuscules . Le fichier de service ne fonctionnera pas si l'un d'entre eux est mentionné de manière incorrecte, comme [UNIT] ou [SERVICE].

Le nom du service est spécifié comme Mon service dans le Description directive de la [Unité] section.

Le Taper du service est simple dans le [Service] section, qui est le type par défaut. Fourchette , un tir , notifier , bus , et inactif sont quelques-uns des autres types.

Si vous souhaitez rendre le service spécifique à l'utilisateur, alors le Utilisateur La directive peut également être utilisée avec le nom d'utilisateur de l'utilisateur. L’utilisation de cette directive rendra dépendante l’autorisation de l’utilisateur du service.

Tandis que le ExécuterDébut La directive contient le chemin complet de l’exécutable. Dans l'exemple ci-dessus, le fichier script monscript.sh est stocké dans le /accueil/sam/ annuaire. Cette directive gère en fait ce qu'il faut exécuter lorsqu'un service est invoqué par systemd. Si le chemin complet de la commande n'est pas spécifié, elle sera automatiquement résolue pour corriger les chemins absolus tels que /usr/local/bin , /usr/bin/, et /poubelle . Il est tout à fait possible d'utiliser le nom de l'exécutable tant qu'il se trouve dans les répertoires de commandes standard. Dans le cas contraire, mentionnez le chemin absolu. Notez que plusieurs commandes peuvent également être utilisées, séparées par un point-virgule (;).

Le [Installer] la section est facultative ; cependant, il indique comment le service est activé. Le RecherchéPar La directive prend les fichiers cibles au niveau de l'exécution comme paramètres. Divers fichiers cibles indiquaient différents niveaux d'exécution du système, tels que éteindre , sauvetage , multi-utilisateur , graphique , et redémarrer .

Le multi-utilisateur.cible signifie que le service sera activé lorsque le système est dans un état permettant d'autoriser des sessions non graphiques multi-utilisateurs.

3. Activation du service

Pour activer le service, commencez par recharger les configurations systemd en utilisant systèmectl utilitaire.

sudo rechargement du démon systemctl

Ensuite, activez à nouveau le service en utilisant systèmectl commande avec activer .

sudo systèmectl activer monservice.service

Pour vérifier, vérifiez l'état du service à l'aide du statut systemctl commande.

Le service s'exécute avec succès.

Maintenant, lisons le fichier texte monfichier.txt le service créé dans le /maison annuaire.

Comment créer un fichier de service Systemd pour un utilisateur normal

La procédure de création du fichier de service pour un utilisateur normal est similaire à la méthode de création d'un fichier de service par l'administrateur. Cependant, le répertoire dans lequel enregistrer le fichier de service pour les utilisateurs normaux est différent. Les utilisateurs normaux doivent placer leurs fichiers de service dans le ~/.config/systemd/user . Ce répertoire doit être créé à l'aide du mkdir commande.

mkdir ~ / .config / système / utilisateur

Pour activer le service par un utilisateur normal -utilisateur la commande est insérée avec systèmectl au lieu de sudo .

systèmectl --utilisateur rechargement du démon

systèmectl --utilisateur activer SERVICE-NAME.service

systèmectl --utilisateur statut SERVICE-NAME.service

Le -utilisateur L’option est utilisée pour gérer les fichiers du service systemd de l’utilisateur.

Comment supprimer le fichier de service

Pour supprimer le fichier de service, le service doit d’abord être arrêté.

sudo systemctl arrête SERVICE-NAME.service

Vérifiez l'état en utilisant statut systemctl commande pour savoir si le service est arrêté ou non. Supprimez ensuite le fichier de service à l'aide du rm commande.

sudo rm / etc. / système / système / SERVICE-NAME.service

Maintenant, rechargez le système configuration.

sudo rechargement du démon systemctl

Conclusion

Le service systemd personnalisé est avantageux dans divers scénarios. Dans ce guide, nous avons appris comment créer un fichier de service systemd personnalisé pour un administrateur système et comment les utilisateurs normaux peuvent créer un fichier de service. De plus, nous voyons également la procédure de suppression du fichier de service.