Sou usuário do Ubuntu há algum tempo e, no trabalho, temos muitos servidores VM do Ubuntu , todos executados Ubuntu 14.04 LTS
para implantar nossos aplicativos web, bancos de dados e outras ferramentas.
Atualmente Ubuntu 16.04 LTS
, estou estudando , desktop e servidor, para poder atualizar nossos servidores de produção em um futuro próximo sem causar problemas.
Desde o Ubuntu 15.04, init
e upstart
fui substituído por Systemd
, também estou estudando o Systemd.
Percebi que meu computador de desenvolvimento executando o Ubuntu 16.04 Desktop edition tem graphical.target
como destino padrão o systemd, o que é lógico.
Mas então notei que o servidor de teste executando o Ubuntu 16.04 Server edition também usa graphical.target
como o destino padrão do systemd.
$ systemctl get-default
graphical.target
Então, eu estou confuso. O servidor não possui nenhuma camada gráfica. Como é o destino padrão graphical.target
?
Editar # 0
Como Rinzwind sugeriu nos comentários, olhei para o alvo para ver se ele está ativo ou não ...
e a resposta é SIM:
admin@server1604:~$ systemctl get-default
graphical.target
admin@server1604:~$ systemctl status graphical.target
● graphical.target - Graphical Interface
Loaded: loaded (/lib/systemd/system/graphical.target; static; vendor preset: enabled)
Active: active since jeu. 2016-10-13 16:03:18 CEST; 46min ago
Docs: man:systemd.special(7)
oct. 13 16:03:18 fdea systemd[1]: Reached target Graphical Interface.
Então, eu estou um pouco mais confuso.
Editar # 1
A resposta de Mark Stosberg aponta o fato de fazer display-manager.service
parte da árvore de dependências do graphical.target
servidor 16.04, e ele acrescenta que nenhum gerenciador de tela está instalado ou em execução em sua máquina. Eu olhei para isso também e, de fato, no meu servidor, essa dependência existe:
admin@server1604:~$ systemctl list-dependencies graphical.target
graphical.target
● ├─accounts-daemon.service
● ├─apache2.service
● ├─apport.service
● ├─display-manager.service
...
E esse alvo tem um círculo vermelho à esquerda, onde a maioria das outras dependências tem um verde.
E desta vez o resultado é consistente:
[email protected]:~$ systemctl status display-manager.service
● display-manager.service
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)
Mas aqui está outra coisa estranha: na minha edição para desktop, display-manager.service
não é uma dependência de graphical.target
:
[email protected]:~ $ systemctl list-dependencies graphical.target | grep display
[email protected]:~ $
Mas eu até encontrei uma alternativa porque corro Ubuntu-Gnome
com a lightdm
substituição do gerenciador de janelas padrão:
[email protected]:~ $ systemctl list-dependencies graphical.target | grep lightdm
● ├─lightdm.service
graphical.target
ativo?Respostas:
Apesar do nome do destino, não há nada gráfico em execução no Ubuntu Server 16.04. Você pode este comando para verificar e comparar com a área de trabalho, se desejar:
No meu servidor Ubuntu 16.04, vejo que os destinos dependem de "display-manager.service", mas nenhum gerenciador de exibição está instalado ou em execução.
Espero que os servidores Ubuntu sejam configurados dessa maneira para algum tipo de consistência, embora eu concorde que é confuso.
fonte
No manual redhat :
Portanto, não é errado defini-lo, pois não ativa o gerenciador de exibição quando o serviço que lida com o serviço de exibição não está definido.
Para um servidor, você pode configurá-lo como,
multi-user.target
mas não é necessário. Parece que você acaba no nível de execução 4 se o fizer e no nível 5 quando não o fizer.fonte
Inspecionando mais detalhadamente o primeiro nível da dependência em árvore do destino
graphical.target
:uma comparação com o primeiro nível do
multi-user.target
:Eu aviso que, se remover os alvos deficientes na
graphical.target
árvore (display-manager.service
,systemd-update-utmp-runlevel.service
,ureadahead.service
), quase todos os demais:apache2.service
apport.service
grub-common.service
grub-common.service
irqbalance.service
mdadm.service
ondemand.service
sysstat.service
já estão incluídos no primeiro nível da árvore de dependência do
multi-user.target
.Embora, devamos perguntar novamente sobre esse fato, porque
graphical.target
depende domulti-user.target
, não há necessidade de todas essas coisas. Parece bastante estranho.Mas, após essa redução, ele continua sendo um serviço
accounts-daemon.service
, como Rinzwind apontou em seu comentário .Portanto, podemos assumir que o
graphical.target
necessário para carregar o arquivoaccounts-daemon.service
.No entanto, nesse caso, é novamente estranho, porque eu acho que faria mais sentido criar um alvo dedicado para esse fim, talvez algo como
accounts.target
ou qualquer termo correto para descrevê-lo. De qualquer forma, provavelmente os desenvolvedores da Canonical tiveram suas razões para pensar assim.Mas fico curioso para saber suas razões.
fonte