Procurei uma resposta para esta pergunta no serverfault e não consegui encontrá-la. Eu sei que é possível, mas não consigo me lembrar de como fazê-lo. Como faço para alterar o nome de host de um host Linux e fazer com que essa alteração entre em vigor sem uma reinicialização?
Estou usando o Ubuntu 16 e o Ubuntu 18.
Uma grande característica do Ubuntu são os utilitários gráficos de área de trabalho e sistema gráfico. No entanto, como estamos executando o Ubuntu em nosso ambiente de produção, optamos por não usar a área de trabalho ou utilitários gráficos para que esses recursos não consumam os recursos necessários em nosso ambiente de produção.
Eu sei que para renomear o host, edito os arquivos:
/etc/hostname
/etc/hosts
No /etc/hostname
primeiro, apenas substitui o nome do host atual (que em breve será o antigo nome do host) pelo novo nome do host.
O Ubuntu no /etc/hosts
arquivo tem a linha:
127.0.1.1 your-hostname your-hostname
Ele atua como inicialização enquanto o host está inicializando e se estabelecendo na sua rede. Antes de alterar o nome do host, your-hostname
é o atual (que será o antigo nome do host) e, como parte da alteração do nome do host, um substitui esse nome pelo novo nome.
Estou familiarizado com a execução das duas etapas acima e a reinicialização do host. Mas muitas vezes, como em um servidor de produção, alguém gostaria de executar essa renomeação, mas não reiniciar o host.
Como posso alterar o nome do host em um host e fazer com que essa alteração entre em vigor sem reiniciar o host?
Respostas:
Você pode alterar a idéia do nome do host do kernel em um sistema baseado em systemd usando a
hostnamectl
ferramenta Por exemplo:Você pode visualizar a ideia atual do sistema do nome do host com:
Lembre-se de que isso não altera a idéia de nome de host de um processo em execução. Esse processo precisaria verificar o nome do host novamente para ser atualizado, e quase nenhum processo o faz. Assim, esse processo precisaria ser reiniciado. Para que todo processo comece a usar o novo nome do host, eles devem ser reiniciados. Geralmente é mais fácil reiniciar o sistema do que reiniciar todos os serviços individualmente.
fonte
sudo /etc/init.d/network restart
Além disso, reiniciar a rede no meu servidor por meio desse comando significa que você deve reiniciar qualquer processo em execução que precise saber o nome do servidor. Concordou que reiniciar o host resolveria isso. Dito isto, há momentos em que realmente quero renomear um host, mas realmente não quero reiniciá-lo. Alguma opinião sobresudo /etc/init.d/network restart
e sua utilidade para que o novo nome de host entre em vigor sem reiniciar?/etc/init.d
é o caminho errado nos sistemas systemd. Ele existe apenas para compatibilidade com versões anteriores do antigo sistema V.Você pode alterar o nome do host no kernel usando:
No Linux, isso é praticamente igual a um dos seguintes:
Isso não depende do systemd (ao contrário do hostnamectl, que requer systemd-hostnamed) ou de qualquer outra ferramenta não-padrão, e geralmente (principalmente nos sistemas shellscript-init) é como o nome do host inicial foi definido em primeiro lugar.
A maioria dos programas e serviços não usa o nome do host; os poucos que fazem (por exemplo, Postfix ou serviços usando o Kerberos) podem ser reiniciados um por um.
(Alguns programas armazenam em cache o nome do host até a reinicialização, outros o consultam toda vez que precisam. Os programas também podem pesquisar (2) / proc / sys / kernel / hostname para receber notificações de alterações, mas poucos o fazem.)
fonte
/etc/postfix/main.cf
e/etc/mailname
, portanto, eles precisarão ser editados também.