De acordo com o comentário do slm, o nome do host do sistema é mantido na memória pelo kernel e a maneira correta de o software do usuário acessar é através da chamada do sistema gethostname()
.
O nome do host padrão é, na verdade, compilado no kernel (linux), portanto, se você criar o seu próprio, poderá configurá-lo dessa maneira. Os kernels de distribuição geralmente usam localhost
, eu acho (também pode estar vazio).
Como a maioria das pessoas provavelmente não deseja compilar um kernel apenas para definir o nome do host, há também uma chamada do sistema para configurá-lo, sethostname()
; isso é usado por comandos como hostname
. Normalmente, durante a inicialização, um serviço init fará isso usando o valor de /etc/hostname
. No entanto, isso não é obrigatório.
Não há restrições para o nome do host, mas observe que ele não é o mesmo que o nome de domínio totalmente qualificado (FQDN). O FQDN é o nome do host mais seu nome de domínio. Se você usar o método abaixo para definir o nome do domínio, provavelmente não deverá ter pontos no seu nome de host.
the role and correct setup of /etc/hosts in regard to setting the hostname (is it not just for resolving? what names and where to point?)
É para a resolução de DNS, mas Patrick tem uma explicação de como usá-lo para definir as obras de nomes de domínio aqui . É uma pesquisa no nome do host e, em seguida, uma pesquisa inversa usando o endereço IP; meio tortuoso e confuso comparado a apenas configurá-lo com hostname --fqdn
, mas aparentemente mais comum.
Isso não impede que domainname
retorne (none)
, mas talvez isso seja irrelevante.