我有一个运行named-chroot的CentOS7服务器。 这个问题是命名的,named-chroot在CentOS7中是独立的systemd服务,我有一个稳定的系统和一个短暂的内存。 几个月之间,任何需要BIND维护。 当我有BIND工作要做,我总是忘记打字
systemctl restart named-chroot
而不是键入
systemctl restart named
如果我弄错了,没有任何警告,我开始不正确的服务。
我想使用systemdconfiguration来编辑指定的服务,提醒我我犯了一个错误。 这是我已经得到覆盖标准的命名服务:我使用
systemctl edit named
并放入以下内容:
[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
这是我得到的。 echo命令的结果将在journalctl和systemctl状态中可见。 当然,理想的做法是让他们在terminal上打印,但我没有想到。 这不起作用:
StandardOutput=tty TTYPath=/dev/tty
也不是其变体; 我得到的错误消息告诉我,/ dev / tty在bash中不可用!
另一个问题是:即使使用上面的文件,像这样的命令也会导致named-chroot暂停而没有可见的指示符或警告:
systemctl restart named systemctl start named
我不知道为什么named-chroot启动的named守护进程会受到我修改的命名脚本的影响,因为我重写了每个可以find的命名服务选项。
如果你是系统专家,请帮我做这个工作。
你为什么不掩盖服务 ? 这可以防止它以任何方式启动或使用。
# 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.
替代build议。 删除named单元并创build一个别名。
通过在单元searchpath之一中创build从新名称到现有名称的符号链接,单元可以是别名(具有替代名称)。 例如,systemd-networkd.service具有别名dbus-org.freedesktop.network1.service,在安装期间创build为symlink /usr/lib/systemd/system/dbus-org.freedesktop.network1.service。 另外,单元文件可以通过[Install]部分中的Alias =指令来指定别名; 这些别名仅在单位启用时有效。 当单位启用时,将为这些名称创build符号链接,并在单位禁用时将其删除。 例如,reboot.target指定Alias = ctrl-alt-del.target,所以当启用时,只要按下CTRL + ALT + DEL,就会调用它。 Alias名称可用于启用,禁用,启动,停止,状态等命令以及单元依赖性指令中的要求= =,要求=,之前=,之后=,…,限制通过Alias =指定的别名只是当单位启用时有效。 预设命令不能使用别名。
https://www.freedesktop.org/software/systemd/man/systemd.unit.html