Comment créer et gérer des services utilisateur sous Linux

Comment Creer Et Gerer Des Services Utilisateur Sous Linux



Un utilisateur normal de Linux peut créer un service systemd personnalisé. Alors que les services systemd sont en grande partie gérés par les administrateurs système à l'aide de la commande systemctl. La même commande peut également être utilisée pour gérer des services spécifiques à l'utilisateur ; tout ce dont vous avez besoin c'est d'un -utilisateur drapeau.

Dans ce guide, j'expliquerai comment créer un service spécifique à l'utilisateur sous Linux et comment le gérer à l'aide de systemctl.

Raison d'avoir un service utilisateur normal

Le service utilisateur normal est différent du service système. Le service utilisateur normal est centré sur l’utilisateur connecté. Ce service ne fonctionnera que dans la session de l'utilisateur qui l'a créé.







Comment créer un service utilisateur normal

Les services spécifiques à l'utilisateur sous Linux sont placés dans la ~/.config/systemd/user annuaire. Si ce répertoire n'est pas présent, alors il peut être créé.

mkdir -p ~ / .config / système / utilisateur

Le -p flag est utilisé pour créer un répertoire parent si nécessaire. Le ~ indique le répertoire personnel de l'utilisateur local et équivaut à /accueil/utilisateur tandis que le point avant le fichier de configuration le masque. Créons un simple fichier de script bash qui écrira l'utilisation de la mémoire dans un texte toutes les 30 minutes. Je crée le script avec le nom de script.sh .

#! /bin/bash

alors que vrai

faire

gratuit -m >> / maison / utilisateur / monfichier.txt

dormir 1800

fait

Ce script peut être créé n'importe où, mais assurez-vous que le chemin spécifié dans le script est un chemin absolu.

Créons maintenant un service qui exécutera le script ci-dessus en arrière-plan. Lancez n’importe quel éditeur de texte, tel que Nano ou Vim, et collez-y les lignes ci-dessous.

[ Unité ]

Description =Mon service

[ Service ]

Taper =simple

ExécuterDébut = / poubelle / frapper / maison / utilisateur / script.sh

Redémarrage =en cas d'échec

[ Installer ]

RecherchéPar =par défaut.cible

Dans la section [Unité], le Description La directive contient simplement le nom du service. Notez qu’il ne doit pas contenir plus de 80 caractères.

La section [Service] contient les trois directives importantes. Premièrement, le Taper ; lequel est simple , alors ExécuterDébut contenant l'exécutable de notre script personnalisé. Le service ne redémarrera qu'en cas de panne.

La section [Installer] contient le RecherchéPar directive qui est par défaut.cible , ce qui implique que le service sera activé dans l'état du système lorsqu'il sera atteint au niveau d'exécution par défaut, qui est normalement multi-user.target ou Graphical.target.

Maintenant, enregistrez le fichier dans le ~/.config/systemd/user répertoire avec n'importe quel nom ; je le nomme monservice.service .

Comment gérer un service utilisateur normal

Pour gérer le service utilisateur normal, la commande systemctl est utilisée avec le -utilisateur drapeau. Le -utilisateur L'indicateur signifie que l'utilisateur contacte le gestionnaire de services plutôt que le système.

Après avoir créé le fichier de service spécifique à l'utilisateur, la première étape cruciale consiste à recharger les fichiers de configuration systemd.

systèmectl --utilisateur rechargement du démon

Cela appliquera les modifications.

Pour savoir si le service est en cours d'exécution ou non, utilisez systemctl, avec le -utilisateur drapeau et option.

systèmectl --utilisateur statut [ Nom du service ]

D'autres commandes pour gérer le service utilisateur normal sont mentionnées ci-dessous :

systèmectl --utilisateur commencer [ Nom du service ]

systèmectl --utilisateur activer [ Nom du service ]

systèmectl --utilisateur arrêt [ Nom du service ]

systèmectl --utilisateur désactiver [ Nom du service ]

systèmectl --utilisateur redémarrage [ Nom du service ]

Comment créer un service utilisateur normal avec des autorisations d'administrateur système

Il existe de nombreux services qu'un utilisateur crée, mais leur exécution nécessite une autorisation d'administrateur. De tels services peuvent être créés en ajoutant un Utilisateur directive à la section [Service].

Le Utilisateur La directive peut être utilisée pour mentionner le nom de l'utilisateur dont les autorisations sont requises pour exécuter le service, tel que administrateur . Ainsi, si un utilisateur normal souhaite créer un service qui demande des autorisations d'administrateur, il suffit d'ajouter le Utilisateur = administrateur dans la section [Service] fera le travail. Cependant, ce service restera actif tant que l'administrateur sera actif. Notez que ce service ne peut pas être directement contrôlé par l'administrateur.

Conclusion

L'utilisateur normal peut également créer un service systemd, mais il doit être placé dans ~/.config/systemd/user annuaire. Ce service fonctionne tant que l'utilisateur qui l'a créé est connecté. Ces services sont également gérés via la commande systemctl mais avec -utilisateur drapeau. Ce qui indique au systemd que le service est appelé par l'utilisateur et non par le système. Dans ce guide, j'ai créé un service utilisateur normal personnalisé et mentionné les commandes systemctl pour le gérer. De plus, j'ai également mis en évidence une méthode pour créer un service qui nécessite des privilèges administratifs.