Le script de l'unité Systemd qui doit imprimer un message sur le terminal ne fonctionne pas

J'ai un server CentOS7 exécuté nommé-chroot. Le problème est nommé et named-chroot sont des services système séparés dans CentOS7, et j'ai à la fois un système stable et une memory courte. Les mois se produisent entre tout besoin de maintenance BIND. Quand j'ai le travail BIND à faire, j'oublie toujours de taper

systemctl restart named-chroot 

et tapez plutôt

 systemctl restart named 

Si je me trompe, il n'y a aucun avertissement que je commence le service incorrect.

J'aimerais utiliser les configurations système pour éditer le service nommé pour me callbacker que j'ai fait une erreur. C'est à ce moment-là que j'ai dépassé le service standard nommé: j'utilise

 systemctl edit named 

et mettez le suivant:

 [Unit] Description=You want named-chroot Wants= Before= After= [Service] Type=simple EnvironmentFile= Environment= ExecStartPre= ExecStart= ExecStart=/bin/bash -c "/usr/bin/echo 'No, you want named-chroot'" ExecReload= ExecReload=/bin/bash -c "/usr/bin/echo 'No, you want named-chroot'" ExecStop= ExecStop=/bin/bash -c "/usr/bin/echo 'No, you want named-chroot'" StandardOutput=journal+console PrivateTmp=false 

C'est aussi loin que j'ai eu. Les résultats des commands echo seront visibles dans le statut journalct et systemctl. Bien sûr, l'idéal serait de les imprimer sur le terminal, mais je ne l'ai pas compris. Cela ne fonctionne pas:

 StandardOutput=tty TTYPath=/dev/tty 

ni ses variantes; Je reçois des messages d'erreur qui me disent que / dev / tty n'est pas disponible dans bash!

Un autre problème: même avec le file ci-dessus, des commands comme celles-ci peuvent provoquer l'arrêt du chroot nommé sans indicateur ou avertissement visible:

 systemctl restart named systemctl start named 

Je ne peux pas comprendre pourquoi le démon nommé lancé par named-chroot devrait être affecté par mon script nommé révisé, lorsque j'ai remplacé chaque option de service nommé que j'ai pu find.

Si vous êtes expert en système, aidez-moi à faire fonctionner.

2 Solutions collect form web for “Le script de l'unité Systemd qui doit imprimer un message sur le terminal ne fonctionne pas”

Pourquoi ne pas simplement masquer le service ? Cela l'empêche de démarrer ou d'être utilisé de quelque manière que ce soit.

 # systemctl mask named Created symlink /etc/systemd/system/named.service → /dev/null. # systemctl start named Failed to start named.service: Unit named.service is masked. 

Autre suggestion. Supprimez l'unité named et créez un alias.

Les unités peuvent être alias (ont un nom alternatif), en créant un lien symbolique du nouveau nom au nom existant dans l'un des paths de search de l'unité. Par exemple, systemd-networkd.service possède l'alias dbus-org.freedesktop.network1.service, créé lors de l'installation en tant que symbole /usr/lib/systemd/system/dbus-org.freedesktop.network1.service. En outre, les files unitaires peuvent spécifier des alias via la directive Alias ​​= dans la section [Installer]; ces alias ne sont efficaces que lorsque l'unité est activée. Lorsque l'unité est activée, des liens symboliques seront créés pour ces noms et supprimés lorsque l'unité est désactivée. Par exemple, reboot.target spécifie Alias ​​= ctrl-alt-del.target, donc, lorsqu'il est activé, il sera invoqué lorsque CTRL + ALT + DEL est pressé. Les noms d'alias peuvent être utilisés dans des commands telles que enable, disable, start, stop, status, … et dans les directives de dépendance d'unité Wants =, Nécessite =, Before =, After =, …, avec la limitation que les alias spécifiés par Alias ​​= sont uniquement efficace lorsque l'unité est activée. Les alias ne peuvent pas être utilisés avec la command préréglée.

https://www.freedesktop.org/software/systemd/man/systemd.unit.html

  • Utilisation de battements cardiaques avec systemd
  • Automount USB drives with systemd
  • systemd-journal dans Debian Le récipient Jessie LXC mange 100% CPU
  • Services Systemd incohérents sur les servers Centos
  • Dans Arch linux - systemd, dans FreeBsd -?
  • Qu'est ce que "-session ..." signifie dans /etc/pam.d/system-session?
  • Redémarrez Postfix en utilisant Systemd sans supprimer les connections
  • Déclenchement d'une cible lorsqu'un service s'arrête dans systemd
  • Démarrez le service sur la connection user root
  • Comment configurer un backlog socket socket avec systemd?
  • Comment exécuter PostgreSQL sur CentOS dans Docker?
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.