Quero alterar o nome do host do SO, mas não desejo reiniciar.
Eu editei, /etc/hostname
mas requer uma reinicialização para ser implementado. Como evitar isso?
Quero alterar o nome do host do SO, mas não desejo reiniciar.
Eu editei, /etc/hostname
mas requer uma reinicialização para ser implementado. Como evitar isso?
Respostas:
É 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 seu novo nome até você reiniciar. Consulte man hostname
e Como altero o nome do computador? para mais informações. Não use _
em seu nome.
Nota
Após a reinicialização, suas alterações /etc/hostname
serão usadas, portanto (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 alterar a linha que diz:
127.0.1.1 your-old-hostname
para que agora ele contenha seu novo nome de host. (Isso é necessário, caso contrário, muitos comandos deixarão de funcionar.)
/etc/hosts
(ver outras respostas)
hostname
faça com que o novo nome entre em vigor imediatamente, ele não é "permanente", a menos que você também mude /etc/hostname
e /etc/hosts
, como esses são os arquivos que serão lidos após uma reinicialização ou uma falha, o que, é claro, você pode não ser esperando com antecedência.
O hostnamectl
comando faz parte da instalação padrão nas edições Desktop e Server.
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 precisa ser feita separadamente.
hostnamectl set-hostname new-hostname
Este comando faz parte do systemd-services
pacote (que, a partir do Ubuntu 14.04, também inclui os comandos timedatectl
e localectl
). À medida que o Ubuntu migra systemd
, essa ferramenta é o futuro.
hostnamectl
não existe. Acho que alguns sabores do Ubuntu ainda não estão usando o systemd.
Alterando o nome do host ou o nome do computador no ubuntu sem reiniciar
Edite / etc / hostname e mude 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 localhost
127.0.1.1 ubuntu.local ubuntu # change to your new hostname/fqdn
Nota : eu li em um fórum> Editar / etc / hosts e alterei 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 o sudo. Se você já o fez , 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
Para 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
Nota : Comando acima para ativar a alteração. O nome do host salvo neste arquivo (/ etc / hostname) será preservado na reinicialização do sistema (e será definido usando o mesmo serviço).
sudo: unable to resolve host old-hostname
. Para essa parte, a solução @jesperado funciona bem.
/etc/hosts
, as coisas do mant começam a falhar no 12.04.2 LTS, incluindo o w
comando, Apache /sbin/reboot
e muito mais. Certifique-se de atualizar/etc/hosts
127.0.0.1
para localhost
e 127.0.1.1
para um nome de host personalizado. Direito? Então, no final da sua resposta, para uma ação sem rebot , você faz referência /etc/hosts
e 127.0.0.1 newhost oldhost
. Então, não há necessidade de um 127.0.1.1
endereço?
sudo nano /etc/hosts
para que a mudança tivesse efeito; sem sudo, apenas nano /etc/hosts
não salvar a alteração
O nome padrão foi definido quando você estava instalando o Ubuntu. Você pode alterá-lo facilmente para o que quiser no Desktop e no servidor editando os arquivos de hosts e nomes de host. Abaixo está como:
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.
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 um. Nos dois arquivos, altere o nome para o que você deseja e salve-o.
Por fim, reinicie o computador para aplicar as alterações.
Aqui está um script que altera o nome do host da maneira prescrita. Ele garante que não apenas sudo
mas também os aplicativos X11 continuem funcionando sem a necessidade de reinicialização.
Uso: sudo ./change_hostname.sh new-hostname
#!/usr/bin/env bash
NEW_HOSTNAME=$1
echo $NEW_HOSTNAME > /proc/sys/kernel/hostname
sed -i 's/127.0.1.1.*/127.0.1.1\t'"$NEW_HOSTNAME"'/g' /etc/hosts
echo $NEW_HOSTNAME > /etc/hostname
service hostname start
su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"
su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"
faz? Apenas curioso.
xauth list
) e substitui o nome do host antigo pelo novo nome do host ( sed
). Em seguida, awk
coloca aspas no primeiro argumento xauth add
porque xauth
o formato de entrada e saída não é simétrico.
Sem reiniciar:
/etc/hostname
/etc/hosts
acordosudo sysctl kernel.hostname=mynew.local.host
Verifique seu nome de host atual com hostname -f
sudo: unable to resolve host oldname
, sysctl: setting key "kernel.hostname": Read-only file system
. Talvez porque seja um CT dentro do Proxmox.
Embora as abordagens acima ( hostnamectl
, etc/hostname
etc) funcionem para a mudança imediata do nome do host, com o advento do cloud-init - que pode controlar a configuração do nome do host - entre muitas outras coisas. Portanto, não permanecerá após uma reinicialização se o cloud-init estiver instalado. Se você deseja que a alteração permaneça após uma reinicialização, será necessário editar os arquivos de configuração do cloud-init , desabilite o módulo set / update do nome do host do cloud-init :
sudo sed 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg
ou desative inteiramente o cloud-init:
sudo touch /etc/cloud/cloud-init.disabled
/etc/cloud/cloud.cfg
. Qual é o nome do pacote? Apenas cloud-init
?
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 contra 127.0.0.1 em / etc / hosts.
/etc/hostname
pelo nome do host desejado (você pode editar com sudo nano /etc/hostname
)/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
)sudo service hostname restart; sudo service networking restart
# if you do nothing you'll end up with: # * /etc/hostname (and 'hostname') managed via: 'preserve_hostame: false' # if you do not change /etc/hostname, it will be updated with the cloud # provided hostname on each boot. If you make a change, then manual # maintenance takes over, and cloud-init will not modify it.
que atualmente não tenho o Ubuntu 18, então não posso testá-lo até o fim de semana.
Isso é sem reinicialização e sem qualquer uso do terminal.
Terminal aberto. Veja por si mesmos.
(Para versões mais antigas, a caixa de texto não é editável.)
A resposta clássica à pergunta do pôster original é que, uma vez editado /etc/hostname
, você o aplica sem reiniciar executando hostname (1) com a opção -F
( --file
) como root:
sudo hostname -F /etc/hostname
O nome do host (5) que lida com /etc/hostname
e o programa mencionado é o mesmo no Debian e seus derivados há mais de vinte anos, e o pacote que o fornece foi marcado como essencial e necessário , e no IIRC os scripts init literalmente usaram a mesma coisa para décadas ( /etc/init/hostname.conf
ainda o contém), então devo dizer que estou realmente intrigado com o fato de ninguém ter mencionado isso já :)
sudo hostname your-new-name
sudo /etc/init.d/networking restart
Isso deve fazer o trabalho que eu acho
Eu li as respostas, mas acho que provavelmente você está procurando por isso:
Basta executar esses dois comandos após editar o /etc/hostname
arquivo.
$ sudo service hostname restart
$ exec bash
Isso é tudo. Não há necessidade de reiniciar. Também certifique-se de alterar o nome no /etc/hosts
arquivo.
/etc/hosts
(confirmei em 14.04).
Solução baseada em resposta da Comunidade DigitalOcean.
Edite o arquivo hosts .
$ sudo nano /etc/hosts
Substitua oldname por um novo.
127.0.0.1 localhost newname
Configure o novo nome do host.
$ sudo hostnamectl set-hostname newname