Quero alterar o nome do host do SO, mas não desejo reiniciar.
Eu editei, /etc/hostnamemas 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/hostnamemas 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 hostnamee 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/hostnameserã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/hostse 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)
hostnamefaça com que o novo nome entre em vigor imediatamente, ele não é "permanente", a menos que você também mude /etc/hostnamee /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 hostnamectlcomando faz parte da instalação padrão nas edições Desktop e Server.
Combina a configuração do nome do host por meio do hostnamecomando 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/hostsainda precisa ser feita separadamente.
hostnamectl set-hostname new-hostname
Este comando faz parte do systemd-servicespacote (que, a partir do Ubuntu 14.04, também inclui os comandos timedatectle localectl). À medida que o Ubuntu migra systemd, essa ferramenta é o futuro.
hostnamectlnã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 wcomando, Apache /sbin/reboote muito mais. Certifique-se de atualizar/etc/hosts
127.0.0.1para localhoste 127.0.1.1para um nome de host personalizado. Direito? Então, no final da sua resposta, para uma ação sem rebot , você faz referência /etc/hostse 127.0.0.1 newhost oldhost. Então, não há necessidade de um 127.0.1.1endereço?
sudo nano /etc/hostspara que a mudança tivesse efeito; sem sudo, apenas nano /etc/hostsnã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_HEREIsso 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/hostnamee sudo vi /etc/hostse 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 sudomas 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, awkcoloca aspas no primeiro argumento xauth addporque xautho formato de entrada e saída não é simétrico.
Sem reiniciar:
/etc/hostname/etc/hostsacordosudo sysctl kernel.hostname=mynew.local.hostVerifique 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/hostnameetc) 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/hostnamepelo 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/hostnamee 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.confainda 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/hostnamearquivo.
$ sudo service hostname restart
$ exec bash
Isso é tudo. Não há necessidade de reiniciar. Também certifique-se de alterar o nome no /etc/hostsarquivo.
/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