Ich habe das Init-System bei einer Raspbian-Installation von sysvinit auf systemd geändert. Die Installation startet einwandfrei, startet aber jetzt lightdm beim Booten. Ich möchte nicht, dass es das tut.
Mir ist aufgefallen, dass lightdm.service
beim Booten gestartet wird. Beenden des Dienstes mit
systemctl stop lightdm.service
funktioniert gut.
systemctl disable lightdm.service
sollte es deaktivieren, gibt mir aber
Failed to issue method call: No such file or directory
systemctl status lightdm.service
gibt mir
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
Ich gehe davon aus, dass lightdm von einem init.d-Skript anstelle eines systemd-Skripts gestartet wird und systemctl disable
nicht funktioniert, wenn die Quelle ein init.d-Skript ist. Was soll ich stattdessen tun, um lightdm ab dem Start zu deaktivieren?
bearbeiten: Weitere Infos
Ausgabe von $ 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
Ausgabe von 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
Ausgabe von 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
Antworten:
Versuchen Sie (als root): -
Nach einem Neustart sollten Sie sich im
multi-user
Modus im Gegensatz zu befindengraphical
.Wenn dies fehlschlägt, überprüfen Sie, mit welchem Standardziel Sie arbeiten: -
Beachten Sie, dass der einzige Unterschied in den Pfaden das Verzeichnis der obersten Ebene ist - entweder
/lib
oder/etc
.Das obige sollte ein weicher Link zu sein
multi-user.target
. Wenn es darauf hinweist,graphical.target
ändern Sie es mit (als root): -abhängig davon, wo der Softlink im vorherigen
ls -l
Befehl gefunden wurde.Starten Sie neu und hoffentlich startet Ihr Display Manager nicht.
Um zu sehen, welche Ziele Sie haben, führen Sie Folgendes aus:
quelle
systemctl set-default multi-user
Ironischerweise wurde bisher in keiner Antwort eine der "offiziellen" Möglichkeiten erwähnt, dies zu tun. Der Vollständigkeit halber sind sie hier:
Sie "maskieren" den Dienst:
Oder Sie erstellen eine eigene Einheitendatei
/etc/systemd/system/lightdm.service
, die dann zu einem erstklassigen Systembürger wird, der mit den Befehlenenable
und aktiviert und deaktiviertdisable
werden kann. Einheitendateien ersetzeninit.d
Dateien mit demselben Basisnamen. Sie können daslightdm.service
, was von Debian-Leuten geschrieben wurde, klauen, wenn Sie möchten. ☺Weiterführende Literatur
quelle
Sie können Init-Skripte mit
update-rc.d
Debian aktivieren und deaktivieren . Verwenden Sieupdate-rc.d lightdm disable
.Der Grund, warum das Deaktivieren von graphical.target nicht funktioniert, ist, dass lightdm keine Kenntnisse über graphical.target hat. Es ist ein Init-Skript und startet auf allen Mehrbenutzer-Runlevels (2-5).
quelle