Como desativar a inicialização automática do servidor X no Debian Jessie?


39

Eu tenho uma máquina remota executando o Debian 8 (Jessie) com o lightdm instalado. Quero que ele inicie no modo sem GUI, mas não quero remover todas as coisas relacionadas ao X para ainda poder executá-lo no SSH com o -Xparâmetro Então, como desativar a inicialização automática do servidor X sem removê-lo?

Eu tentei systemctl stop lightdm, ele interrompe o lightdm, mas é executado novamente após a reinicialização. Eu também tentei systemctl disable lightdm, mas basicamente não faz nada. Ele renomeia os scripts do lightdm nos /etc/rc*.ddiretórios, mas ainda é iniciado após a reinicialização, então o que estou fazendo de errado? E não posso update-rc.d lightdm stop, porque está obsoleto e não funciona.


2
A execução de itens X através do ssh não requer um servidor X instalado na máquina. (Requer apenas as bibliotecas do cliente X ). Você realmente quer um servidor X instalado? [AFAIK, você encontrou um erro - a desativação deveria ter funcionado. Claro que isso dificilmente é uma resposta ...]
derobert 19/02/16

@derobert Oh, então ... acho que não preciso do servidor X nesse caso. Ainda é mais uma solução alternativa do que uma solução, mas obrigado. Posso remover com segurança o lightdm e todos os pacotes xorg-server- * ou devo manter algo, por exemplo, xorg-server-input- * ou drivers de vídeo?
21816 kurogetsusai


@kurogetsusai, você pode remover o lightdm e o xorg-server- *. Você realmente só precisa manter xauth(recomendado por openssh-server) e todas as bibliotecas das quais seus clientes X dependem. Você provavelmente precisa de algumas fontes também.
19416 derobert

Respostas:


81

A desativação não funcionou porque a /etc/X11/default-display-managerlógica do Debian está acabando substituindo-a.

Para tornar a inicialização de texto o padrão em systemd (independentemente de qual distribuição, na verdade):

systemctl set-default multi-user.target

Para voltar à inicialização na GUI,

systemctl set-default graphical.target

Confirmei os trabalhos na Jessie VM e o Slashback também no Stretch.

PS: Na verdade, você não precisa do servidor X na sua máquina para executar clientes X no ssh. O servidor X é necessário apenas onde está o monitor (monitor).


2
+1 por apontar X não é necessário para executar clientes X através de SSH
jlh

Funciona na minha VM Stretch.
Slashback 19/09/17

funciona, mas ainda existe um terminal xterm, não consigo me livrar dele.
ransh

@ransh Parece que você deve fazer sua própria pergunta. Faça referência a este na sua pergunta e também explique o que você quer dizer com isso funciona - não tenho certeza de como você ainda tem um xterm aparecendo se o X não estiver iniciando. Também qualquer coisa que possa ser diferente no seu sistema.
derobert

11
você pode usar o systemctl get-default para saber qual é o atual. muito útil para servidor remoto.
Sadi

4

você também pode adicionar systemd.unit=multi-user.targetà linha de comando do kernel, se não conseguir acessar o sistema em execução.


2

Não sei muito sobre o Debian, mas no meu laptop Ubuntu 14.04, eis o procedimento padrão que uso quando quero desativar o X e inicializar command promptpara solucionar problemas:

  1. Edite o arquivo /etc/default/grubno modo superusuário e defina GRUB_CMDLINE_LINUX_DEFAULT="text"

Opcionalmente, também remova o comentário desta linha: #GRUB_TERMINAL=console e faça sudo update-grub. A máquina inicializa no modo de texto.

  1. Para iniciar a interface gráfica a partir daí, você pode sudo service lightdm start# pode ser gdm ou startx em algumas situações

Fonte: https://askubuntu.com/questions/52089/how-do-i-boot-to-a-command-line-interface-instead-of-a-gui


Não funcionou no Ubuntu 16.04. Ele ainda é inicializado automaticamente no gnomo.
Juha Untinen

Você tentou descomentar o GRUB_TERMINAL=consolee também atualizar o grub?
Prahlad Yeri

Sim. Eu tive que fazer isso, o que é mencionado na resposta aceita:systemctl set-default multi-user.target
Juha Untinen 23/02

0

Tente o seguinte comando:

echo  "manual" | sudo tee -a /etc/init/lightdm.override

0

Eu tive que fazer isso:

systemtcl disable *dm

Onde *é um gou um ktalvez um x.


é claro que * é um "g" ou um "k" talvez "x"
emile boyer
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.