Normalmente usamos o serviço dhcpd stop para parar o dhcpd, mas o cmd service
é apenas um script, portanto deve ser algo executado por script para que o dhcpd finalmente pare. Por exemplo, enquanto escrevo um script, quando digito service dhclient stop
, ele é executado dhclient -r
dentro do script.
Então, alguém poderia me dizer o que service dhcpd stop
realmente faz para interromper o serviço dhcpd?
Se você está falando sobre o CentOS 6.x ou anterior, então
service dhcpd stop
executash /etc/init.d/dhcpd stop
, que acaba executandokill <PID of dhcpd>
.Se o CentOS 7.x for
service dhcpd stop
executadosystemctl stop dhcpd
, o que dirásystemd
para fazer a parada real.Se
dhcpd.service
for um arquivo de serviço systemd nativo, entãosystemd
fará a eliminação, provavelmente apenas fazendo umakill(<PID of dhcpd>, SIGTERM)
chamada de sistema, a menos que umExecStop=
comando específico seja especificado no arquivo de serviço ou não pare com sucesso todos os processos pertencentes ao grupo de controle criado porsystemd
para o serviço . Consulteman systemd.kill
para mais detalhes e opções de variações.Se for um wrapper gerado automaticamente para um script de início/parada herdado do SysVinit, o systemd será executado
sh /etc/init.d/dhcpd stop
, da mesma forma que as versões anteriores do CentOS.Você comentou que está usando o CentOS 7.3 - então
systemd
está envolvido.Se você configurar
dhcpd
para atender várias interfaces de rede com uma única instância dedhcpd
, o desligamentodhcpd
obviamente encerrará o serviço DHCP em todas as interfaces ao mesmo tempo.Se você deseja iniciar várias instâncias
dhcpd
(uma para cada interface), basta eliminar odhcpd
processo associado à interface cujo serviço DHCP deseja interromper.Para facilitar o gerenciamento, você pode escrever seus próprios
.service
arquivos personalizadosdhcpd
e colocá-los/etc/systemd/system
para iniciar/parar cada uma das várias instâncias dedhcpd
. Então você pode usar ''service dhcpd-ge1 start'' etc. de acordo com a forma como você escolhe nomear os.service
arquivos. Veja/lib/systemd/system/dhcpd.service
um exemplo em seu sistema e ajuste os argumentos da linha de comando naExecStart=
linha para atender às suas necessidades para cada instância.