centos 上 dhcpd 如何停止?

centos 上 dhcpd 如何停止?

通常我们使用service dhcpd stop来停止dhcpd,但是cmdservice只是一个脚本,因此它应该是由脚本执行的东西,以便dhcpd最终停止。例如,当我编写脚本时,当我输入 时service dhclient stop,它会dhclient -r在脚本内部执行。

那么谁能告诉我service dhcpd stop到底要做什么来停止 dhcpd 服务呢?

答案1

如果您谈论的是 CentOS 6.x 或更早版本,则service dhcpd stop运行sh /etc/init.d/dhcpd stop,最终运行kill <PID of dhcpd>

如果是 CentOS 7.x,则service dhcpd stop运行systemctl stop dhcpd,这将告诉systemd您执行实际的停止操作。

如果dhcpd.service是本机 systemd 服务文件,则systemd可能仅通过进行系统调用来进行查杀,kill(<PID of dhcpd>, SIGTERM)除非在服务文件中指定了特定命令,或者它无法成功停止属于为该服务ExecStop=创建的控制组的所有进程systemd。请参阅 参考资料 了解man systemd.kill更多详细信息和变体选项。

如果它是旧版 SysVinit 启动/停止脚本的自动生成包装器,则 systemd 将运行sh /etc/init.d/dhcpd stop,就像旧的 CentOS 版本一样。


您评论说您正在使用 CentOS 7.3 - 所以systemd参与其中。

如果您配置dhcpd为使用单个 实例为多个网络接口提供服务dhcpd,则关闭dhcpd显然会同时终止所有接口上的 DHCP 服务。

如果您想启动多个实例dhcpd(每个接口一个),那么您只需终止dhcpd与您希望停止其 DHCP 服务的接口关联的进程即可。

为了使管理更容易,您可以编写自己的自定义.service文件dhcpd并将它们放入/etc/systemd/system其中以启动/停止dhcpd.然后,您可以根据您选择的文件命名方式使用“service dhcpd-ge1 start”等.service。请参阅/lib/systemd/system/dhcpd.service您的系统上的示例,并调整行中的命令行参数ExecStart=以满足每个实例的需要。

相关内容