dhcpd 如何在 centos 上停止?
通常我們使用 service dhcpd stop 來停止 dhcpd,但 cmd
service
只是一個腳本,因此它應該是腳本執行的東西,以便 dhcpd 最終停止。例如,當我編寫腳本時,當我輸入 時service dhclient stop
,它會dhclient -r
在腳本內部執行。那麼誰能告訴我
service dhcpd stop
停止dhcpd服務實際上做了什麼?
如果您談論的是 CentOS 6.x 或更早版本,則為
service dhcpd stop
runssh /etc/init.d/dhcpd stop
,最終為 runningkill <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=
以滿足您對每個實例的需求。