Isc-Dhcpd

dhcpd 如何在 centos 上停止?

  • March 1, 2018

通常我們使用 service dhcpd stop 來停止 dhcpd,但 cmdservice只是一個腳本,因此它應該是腳本執行的東西,以便 dhcpd 最終停止。例如,當我編寫腳本時,當我輸入 時service dhclient stop,它會dhclient -r在腳本內部執行。

那麼誰能告訴我service dhcpd stop停止dhcpd服務實際上做了什麼?

如果您談論的是 CentOS 6.x 或更早版本,則為service dhcpd stopruns sh /etc/init.d/dhcpd stop,最終為 running 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文件命名方式使用’‘service dhcpd-ge1 start’‘等。請參閱/lib/systemd/system/dhcpd.service您的系統上的範例,並調整該行中的命令行參數ExecStart=以滿足您對每個實例的需求。

引用自:https://unix.stackexchange.com/questions/426868