Como faço para alterar o nome do host sem reiniciar?

Quero alterar o nome do host do sistema operacional, mas não quero reiniciar.

Eu tenho editado /etc/hostname mas requer uma reinicialização para ser implementado. Como evitar isso?

É fácil. Basta clicar no ícone de engrenagem (localizado no canto superior direito da tela), abrir a tela "sobre este computador" (localizada no ícone de engrenagem ) e editar "nome do dispositivo".

Ou, em um terminal, use o seguinte comando:

sudo hostname your-new-name

Isso definirá o nome do host Como your-new-name até você reiniciar. Ver man hostname e Como faço para alterar o nome do computador? para mais informações. Não use _ em seu nome.

Notar

Depois de reiniciar suas alterações em /etc/hostname será usado, então (como você disse na pergunta), você ainda deve usar

sudo -H gedit /etc/hostname

(ou algum outro editor) para que o arquivo contenha o nome do host.

Para testar se o arquivo está configurado corretamente, execute:

sudo service hostname start

Você também deve editar /etc/hosts e mude a linha que lê:

127.0.1.1     your-old-hostname

para que agora contenha seu novo nome de host. (Isso é necessário, caso contrário, muitos comandos deixarão de funcionar.)

Ubuntu 13.04 em diante

O hostnamectl o comando faz parte da instalação padrão nas edições Desktop e Server.

Ele combina a configuração do nome do host por meio do hostname comando e edição /etc/hostname. Além de definir o nome do host estático, ele pode definir o nome do host "bonito", que não é usado no Ubuntu. Infelizmente, a edição /etc/hosts ainda tem que ser feito separadamente.

hostnamectl set-hostname new-hostname

Este comando faz parte do systemd-services pacote (que, a partir do Ubuntu 14.04, também inclui o timedatectl e localectl comando). Como o Ubuntu migra para systemd, esta ferramenta é o futuro.

Sem Reiniciar

Alterando o nome do host ou nome do computador no ubuntu sem reiniciar

Edite / etc / hostname e altere para o novo valor,

nano /etc/hostname 

Edite / etc / hosts e altere a linha 127.0.1.1 antiga para seu novo nome de host

127.0.0.1   localhost127.0.1.1   ubuntu.local    ubuntu   # change to your new hostname/fqdn

Notar> : eu li em um fórum editar / etc / hosts e alterar a antiga linha 127.0.1.1 para o seu novo nome de host (se você não fizer isso, não poderá mais usar sudo. Se você já tiver feito isso, pressione ESC no menu grub, escolha recuperação e edite seu arquivo host para as configurações corretas)

Agora, após uma reinicialização, seu nome de host será o novo que você escolheu

Sem Reinicialização

Alterar sem uma reinicialização, você pode apenas usar hostname.sh depois de editar / etc / hostname.Você deve manter os dois nomes de host em /etc/hosts (127.0.0.1 newhost oldhost) até executar o comando abaixo:

sudo service hostname start

Notar : Comando acima para tornar a alteração ativa. O nome do host salvo neste arquivo (/etc / hostname) será preservado na reinicialização do sistema (e será definido usando o mesmo serviço).

O nome padrão foi definido quando você estava instalando o Ubuntu. Você pode facilmente alterá-lo para o que quiser em ambos Desktop & servidor editando os hosts e arquivos de nome de host. Abaixo está como:

  1. Premir CtrlAltt no teclado para abrir o terminal. Quando abrir, execute o comando abaixo: sudo hostname NEW_NAME_HERE

Isso mudará o nome do host até a próxima reinicialização. A alteração não será visível imediatamente no seu terminal atual. Inicie um novo terminal para ver o novo nome do host.

  1. Para alterar o nome permanentemente, execute o comando para editar os arquivos do host:

    sudo -H gedit /etc/hostname e sudo -H gedit /etc/hosts

Para o servidor Ubuntu sem uma GUI, execute sudo vi /etc/hostname e sudo vi /etc/hosts e editá-los um por one.In ambos os arquivos, altere o nome para o que você deseja e salve-os.

Finalmente, reinicie o computador para aplicar as alterações.

Cloud-persistência do nome do host init (Ubuntu 18+)

Embora as abordagens acima (hostnamectl, etc/hostname, etc) trabalho para mudança imediata de nome de host, com o advento de cloud-init - que pode controlar a configuração do nome do host-entre muitas outras coisas. Portanto, ele não grudará após uma reinicialização se o cloud-init estiver instalado. Se você quiser que a mudança permaneça após uma reinicialização, você precisará editar o arquivos de configuração do cloud-init, desative o cloud-init's conjunto de nomes de host / módulo de atualização:

sudo sed 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg

ou desative totalmente o cloud-init:

sudo touch /etc/cloud/cloud-init.disabled

Aqui está um script que altera o nome do host da maneira prescrita. Ele garante que não só sudo mas também os aplicativos X11 continuam a funcionar sem necessidade de reinicialização.

Uso: sudo ./change_hostname.sh new-hostname

#!/usr/bin/env bashNEW_HOSTNAME=$1echo $NEW_HOSTNAME > /proc/sys/kernel/hostnamesed -i 's/127.0.1.1.*/127.0.1.1\t'"$NEW_HOSTNAME"'/g' /etc/hostsecho $NEW_HOSTNAME > /etc/hostnameservice hostname startsu $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"

Sem reiniciar:

  1. alterar o nome do host em /etc/hostname
  2. actualizacao /etc/hosts adequadamente
  3. sudo sysctl kernel.hostname=mynew.local.host

Verifique seu nome de host atual com hostname -f

Para obter seu nome de host atual:

cat /etc/hostname

Isso pode ser alterado em qualquer editor de texto. Você também precisaria atualizar a entrada diferente de localhost em relação a 127.0.0.1 em / etc / hosts.

Ubuntu 16.04

Solução baseada em resposta da Comunidade DigitalOcean.

Editar anfitriao arquivo.

$ sudo nano /etc/hosts

Substituir oldname com um novo.

127.0.0.1 localhost newname

Configure o novo nome do host.

$ sudo hostnamectl set-hostname newname

  1. Substitua o conteúdo do /etc/hostname com o nome do host desejado (você pode editar com sudo nano /etc/hostname)
  2. Em /etc/hosts, substitua a entrada ao lado de 127.0.1.1 com o nome do host desejado (você pode editar com sudo nano /etc/hosts)
  3. Executar sudo service hostname restart; sudo service networking restart

Aviso: não funcionará com o Ubuntu 18+, que está executando o cloud-init por padrão, que controla o nome do host na inicialização.

@nslntmnx, obrigado!