Cambié el sistema init de sysvinit a systemd en una instalación raspbian. La instalación arranca bien, pero ahora comienza lightdm en el arranque. No quiero que haga eso.
Me di cuenta de que lightdm.service
se inició en el arranque. Detener el servicio con
systemctl stop lightdm.service
funciona bien.
systemctl disable lightdm.service
debería deshabilitarlo, pero me da
Failed to issue method call: No such file or directory
systemctl status lightdm.service
me da
lightdm.service - LSB: Light Display Manager
Loaded: loaded (/etc/init.d/lightdm)
Active: inactive (dead) since Thu, 03 Jul 2014 09:33:00 +0000; 22min ago
Process: 762 ExecStop=/etc/init.d/lightdm stop (code=exited, status=0/SUCCESS)
Process: 411 ExecStart=/etc/init.d/lightdm start (code=exited, status=0/SUCCESS)
CGroup: name=systemd:/system/lightdm.service
Supongo que lightdm se inicia desde un script init.d en lugar de un script systemd, y systemctl disable
no funciona si la fuente es un script init.d. ¿Qué debo hacer para deshabilitar lightdm a partir del inicio?
editar: más información
salida de $ ls -l /etc/systemd/system
:
total 20
lrwxrwxrwx 1 root root 42 Jul 3 09:04 dbus-fi.epitest.hostap.WPASupplicant.service -> /lib/systemd/system/wpa_supplicant.service
lrwxrwxrwx 1 root root 37 Jul 3 13:03 default.target -> /lib/systemd/system/multi-user.target
drwxr-xr-x 2 root root 4096 Jul 3 09:00 getty.target.wants
drwxr-xr-x 2 root root 4096 Jul 3 09:04 graphical.target.wants
drwxr-xr-x 2 root root 4096 Oct 11 2013 local-fs.target.wants
drwxr-xr-x 2 root root 4096 Jul 3 09:04 multi-user.target.wants
drwxr-xr-x 2 root root 4096 Oct 11 2013 sysinit.target.wants
lrwxrwxrwx 1 root root 35 Mar 20 2013 syslog.service -> /lib/systemd/system/rsyslog.service
salida de systemctl --all -t target
:
UNIT LOAD ACTIVE SUB JOB DESCRIPTION
all.target error inactive dead all.target
basic.target loaded active active Basic System
cryptsetup.target loaded active active Encrypted Volumes
emergency.target loaded inactive dead Emergency Mode
final.target loaded inactive dead Final Step
getty.target loaded active active Login Prompts
local-fs-pre.target loaded active active Local File Systems (Pre)
local-fs.target loaded active active Local File Systems
multi-user.target loaded active active Multi-User
network.target loaded inactive dead Network
nss-lookup.target loaded inactive dead Name Lookups
remote-fs.target loaded active active Remote File Systems
rescue.target loaded inactive dead Rescue Mode
shutdown.target loaded inactive dead Shutdown
sockets.target loaded active active Sockets
sound.target loaded active active Sound Card
swap.target loaded active active Swap
sysinit.target loaded active active System Initialization
syslog.target loaded active active Syslog
time-sync.target loaded inactive dead System Time Synchronized
umount.target loaded inactive dead Unmount All Filesystems
salida de ls -l /etc/systemd/system/multi-user.target.wants/
:
total 8
drwxr-xr-x 2 root root 4096 Jul 3 09:04 .
drwxr-xr-x 7 root root 4096 Jul 3 13:03 ..
lrwxrwxrwx 1 root root 36 Oct 11 2013 remote-fs.target -> /lib/systemd/system/remote-fs.target
lrwxrwxrwx 1 root root 33 Jul 3 09:04 rsync.service -> /lib/systemd/system/rsync.service
lrwxrwxrwx 1 root root 35 Mar 20 2013 rsyslog.service -> /lib/systemd/system/rsyslog.service
lrwxrwxrwx 1 root root 32 Jul 3 09:04 sudo.service -> /lib/systemd/system/sudo.service
lrwxrwxrwx 1 root root 42 Jul 3 09:04 wpa_supplicant.service -> /lib/systemd/system/wpa_supplicant.service
Respuestas:
Prueba (como root): -
Después de reiniciar, debería estar en
multi-user
modo en lugar de hacerlographical
.Si eso falla, verifique cuál es su objetivo predeterminado con: -
Tenga en cuenta que la única diferencia en las rutas es el directorio de nivel superior, ya sea
/lib
o/etc
.Lo anterior debe ser un enlace suave a
multi-user.target
. Si apunta a,graphical.target
entonces cámbielo usando (como root): -dependiendo de dónde se encontró el enlace flexible en el
ls -l
comando anterior .Reinicie y esperemos que su administrador de pantalla no se inicie.
Para ver qué objetivos tienes, ejecuta: -
fuente
systemctl set-default multi-user
Irónicamente, ninguna de las formas "oficiales" de hacer esto se ha mencionado en ninguna respuesta hasta ahora. Entonces, para completar, aquí están:
Usted "enmascara" el servicio:
O puede crear un archivo de unidad propio ya
/etc/systemd/system/lightdm.service
que luego se convierte en un ciudadano de systemd de primera clase que se puede habilitar y deshabilitar con los comandosenable
ydisable
. Los archivos de la unidad reemplazan a losinit.d
archivos del mismo nombre base. Si lo desea, puedelightdm.service
escribir lo que escribió la gente de Debian. ☺Otras lecturas
fuente
Puede habilitar y deshabilitar scripts de inicio con
update-rc.d
Debian. Usoupdate-rc.d lightdm disable
.La razón por la que deshabilitar graphical.target no funciona es que lightdm no tiene conocimiento de graphical.target. Es un script de inicio y comienza en todos los niveles de ejecución multiusuario (2-5).
fuente