Pour ajouter correctement les services et les scripts au démarrage sur Debian 11, vous devez créer des unités Systemd. Ce tutoriel se concentre sur les unités Systemd, si vous recherchez des instructions rapides pour exécuter un script au démarrage, passez directement à la création d'une unité Systemd pour exécuter un script à la section Boot.
Qu'est-ce qu'une unité Systemd?
Les unités SystemD sont des fichiers de configuration contenant des informations pour la gestion ou l'exécution appropriée de certains fichiers système. Les unités SystemD peuvent être utilisées pour gérer les services, les prises, les appareils, les points de montage, les points automatités, les fichiers d'échange ou les partitions, une cible de démarrage, un chemin de système de fichiers regardé, des minuteries contrôlées et supervisées par Systemd, une tranche de gestion des ressources ou un groupe de processus créés à l'extérieur.
Les unités Systemd sont situées sous le répertoire / etc / systemd / système. Tout script que vous souhaitez exécuter à Boot à l'aide d'unités Systemd doit être spécifié dans un fichier (unité) dans le cadre de ce répertoire.
Une vue rapide utilisant la commande LS nous montrera les unités Systemd existantes dans notre système.
LS / etc / Systemd / Système
L'un des fichiers qui n'étaient pas inclus dans la capture d'écran ci-dessus est matou.service dont le contenu ressemble à l'image suivante.
Note: Les informations suivantes sont pour vous de vous familiariser avec les fichiers de configuration d'unité. Ne vous inquiétez pas, l'unité que vous créez pour exécuter votre script sera plus simple.
Où les directives [de l'unité]:
Description: Cette directive vous permet d'ajouter une description d'une unité, ici vous pouvez définir le nom de l'unité pour qu'il soit identifié.
Veut: Ici, vous pouvez spécifier les dépendances unitaires. Notez qu'il existe différentes directives dans ce but similaire. Par exemple, la directive A besoin est utilisé pour spécifier des dépendances strictes, sans laquelle l'unité ne peut pas fonctionner. Contrairement aux exigences, les désirs sont utilisés pour spécifier les dépendances sans laquelle l'unité peut continuer à fonctionner.
Après: L'unité actuelle commencera après l'unité spécifiée dans cette directive.
[Service] Directives de la section:
Taper: Dans l'exemple précédent, la forking indique que le service doit être tué tout en conservant des processus enfants qui doivent se voir attribuer un PID.
Environnement: Ici, vous pouvez spécifier les variables de l'environnement unitaire.
Exercice: Cette directive vous permet de spécifier le chemin et les commandes que vous souhaitez exécuter.
Execstop: vous pouvez spécifier la commande utilisée pour arrêter l'unité.
Succèsxitstatus: Cette directive vous permet de spécifier le statut de sortie et les signaux.
Utilisateur: vous pouvez spécifier le propriétaire de l'utilisateur de l'unité.
Groupe: vous pouvez spécifier le propriétaire du groupe de l'unité.
Umask: vous pouvez spécifier le masque utilisateur.
Redémarrer: Si l'unité redémarre automatiquement, ici vous pouvez spécifier le temps d'attendre pour retarder le redémarrage du service.
Redémarrage: vous pouvez définir pour Systemd lorsque l'unité doit être redémarrée. Les options disponibles sont toujours, en face, en arrière, sur le succès, à la hauteur.
La directive [d'installation] dans l'exemple ci-dessus est recherchée par.
Recherché par: Cette directive vous permet de définir l'unité comme une dépendance; il est similaire au Veut directive, mais pour spécifier si l'unité actuelle est considérée comme une dépendance par une autre unité.
Autres directives communes dans la section [unité] qui n'étaient pas incluses dans la capture d'écran précédente:
A besoin: Dans cette directive, vous pouvez spécifier les dépendances pour empêcher les échecs de démarrage. Contrairement au Veut directive, si une dépendance spécifiée avec la directive nécessite n'est pas respectée, l'unité ne fonctionnera pas.
Dans la section [Service]:
Pidfile: La directive FORKING nécessite la directive PidFile, qui contient le chemin d'accès au PID de fichier du processus enfant pour que Systemd puisse l'identifier.
StartLIMITITERVAL: indique que l'unité a 60 secondes pour 10 tentatives de redémarrage lors de l'échec.
Startlimitburst: Cette directive indique la limite des tentatives, dans l'exemple précédent, 10 tentatives en 60 secondes.
Pour plus d'informations sur les unités SystemD, vous pouvez lire:
https: // man pages.Debian.org / jessie / systemd / systemd.unité.5.en.html.
Création d'une unité Systemd pour exécuter un script au démarrage sur Debian 11
L'exécution d'un script au démarrage peut être plus simple et contenir moins de configuration que le matou.service Fichier précédemment utilisé pour afficher le contenu commun de l'unité.
Comme indiqué précédemment, les fichiers (unités) contenant les informations sur les scripts exécutées au démarrage sont situées dans le répertoire / etc / systemd / système. Pour définir un script pour s'exécuter au démarrage, vous devez créer une nouvelle unité pour ce script. Pour créer une unité sous / etc / systemd / système, Vous pouvez utiliser Nano comme indiqué dans l'exemple ci-dessous, dans lequel je crée une unité nommée scénario.service, Vous pouvez le nommer en considérant pratique pour identifier votre script.
sudo nano / etc / systemd / system / script.service
Le contenu de l'unité de votre script sera plus simple que le matou.service utilisé comme exemple précédemment.
Copiez et collez le code suivant dans le fichier que vous avez créé sous / etc / systemd / système.
Note: Remplacer avec votre nom de script et avec le chemin vers votre script.
[Unité]
Description = votre nom de script ici
Après = par défaut.cible
[Service]
Execstart = / path / to / script.shot
[Installer]
WantedBy = par défaut.cible
Après avoir copie le contenu dans le fichier sous / etc / systemd / system /, Vous devez l'activer en utilisant la commande SystemCTL comme indiqué ci-dessous. Remplacer avec le nom correct que vous avez affecté à l'unité.
Maintenant, votre script est prêt à fonctionner au démarrage dans Debian 11.
Conclusion
Comme vous pouvez le voir, l'exécution de scripts au démarrage dans Debian 11 à l'aide de Systemd est assez simple. Tout niveau d'utilisateur Linux peut effectuer cette tâche en créant simplement un fichier simple dans le répertoire des unités. Bien sûr, Linux propose des méthodes supplémentaires pour exécuter des scripts au démarrage qui n'ont pas été décrits dans ce tutoriel comme Cron. Tout utilisateur Linux doit savoir comment localiser les unités Systemd pour exécuter des services ou des scripts requis au démarrage. Les unités Systemd et Cron sont des méthodes acceptées, tandis que RC.local ou init.Les scripts sont obsolètes.
Merci d'avoir lu ce tutoriel expliquant comment exécuter les scripts sur le démarrage à l'aide de Systemd dans Debian 11. Continuez à nous suivre pour des conseils et des tutoriels linux supplémentaires.