Como o dhcpd pára no centos?

1

Normalmente usamos o serviço dhcpd stop para parar o dhcpd, mas o cmd service é apenas um script, portanto deve ser algo executado pelo script para que o dhcpd finalmente pare. Por exemplo, quando escrevo um script, quando digito service dhclient stop , ele executa dhclient -r dentro do script.

Então alguém poderia me dizer o que o service dhcpd stop realmente faz para parar o serviço dhcpd?

    
por YH Wang 27.02.2018 / 09:02

1 resposta

0

Se você está falando sobre o CentOS 6.x ou mais antigo, então service dhcpd stop executa sh /etc/init.d/dhcpd stop , que acaba executando kill <PID of dhcpd> .

Se o CentOS 7.x for executado, então service dhcpd stop executará systemctl stop dhcpd , o que informará systemd para a parada real.

Se dhcpd.service for um arquivo de serviço systemd nativo, systemd fará a eliminação, provavelmente fazendo apenas uma chamada de sistema kill(<PID of dhcpd>, SIGTERM) , a menos que um comando específico ExecStop= seja especificado no arquivo de serviço ou não interromper com êxito todos os processos pertencentes ao grupo de controle criado por systemd para o serviço. Veja man systemd.kill para mais detalhes e opções para variações.

Se for um wrapper gerado automaticamente para um script de início / parada do SysVinit legado, o systemd executará sh /etc/init.d/dhcpd stop , da mesma forma que as versões mais antigas do CentOS fizeram.

Você comentou que está usando o CentOS 7.3 - então systemd está envolvido.

Se você configurar dhcpd para atender a várias interfaces de rede com uma única instância de dhcpd , o desligamento de dhcpd obviamente encerrará o serviço DHCP em todas as interfaces ao mesmo tempo.

Se você quiser iniciar várias instâncias de dhcpd (uma para cada interface), poderá simplesmente eliminar o processo dhcpd associado à interface cujo serviço DHCP deseja interromper.

Para facilitar o gerenciamento, você pode gravar seus próprios arquivos .service personalizados para dhcpd e colocá-los em /etc/systemd/system para iniciar / parar cada uma das várias instâncias de dhcpd . Então você poderia usar '' service dhcpd-ge1 start '' etc. de acordo com como você escolhe nomear os arquivos .service . Veja /lib/systemd/system/dhcpd.service no seu sistema por exemplo e ajuste os argumentos da linha de comando na linha ExecStart= para atender às suas necessidades para cada instância.

    
por 27.02.2018 / 09:43

Tags