我在 raspbian 安装上将 init 系统从 sysvinit 更改为 systemd。安装启动正常,但现在启动时启动 lightdm。我不希望它这样做。
我注意到lightdm.service
是在启动时启动的。停止服务
systemctl stop lightdm.service
工作正常。
systemctl disable lightdm.service
应该禁用它,但给了我
Failed to issue method call: No such file or directory
systemctl status lightdm.service
给我
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
我假设 lightdm 是从 init.d 脚本而不是 systemd 脚本启动的,并且systemctl disable
如果源是 init.d 脚本则不起作用。我应该怎么做才能禁用 lightdm 在启动时启动?
编辑:更多信息
输出$ 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
输出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
输出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
答案1
systemctl disable
如果源是脚本则不起作用init.d
。我应该怎么做才能禁用lightdm
开机自启动?
具有讽刺意味的是,到目前为止,任何答案都没有提到执行此操作的“官方”方法。为了完整起见,它们是:
您“屏蔽”服务:
systemctl mask lightdm.service
或者您创建自己的单元文件,然后它就成为可以使用和命令/etc/systemd/system/lightdm.service
启用和禁用的适当的一流 systemd 公民。单元文件取代相同基名的文件。你可以刻下enable
disable
init.d
lightdm.service
如果您愿意的话,这是由 Debian 人员编写的。 ☺
进一步阅读
- 伦纳特·珀特林 (2011-03-02)。 ”“关”的三个层次”。 管理员系统。
答案2
尝试(以 root 身份):-
systemctl disable graphical.target
重新启动后,您应该处于multi-user
模式而不是graphical
。
如果失败,请检查您的默认目标:-
ls -l /lib/systemd/system/default.target
# or, depending on your distro
ls -l /etc/systemd/system/default.target
请注意,路径中的唯一区别是顶级目录 -/lib
或/etc
。
上面应该是到 的软链接multi-user.target
。如果它指向graphical.target
然后使用(作为根)更改它:-
ln -sf /lib/systemd/system/multi-user.target /lib/systemd/system/default.target
# or
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
取决于在上一个ls -l
命令中找到软链接的位置。
重新启动,希望您的显示管理器不会启动。
要查看您有哪些目标,请运行:-
systemctl --all -t target
答案3
您可以在 Debian 上启用和禁用 init 脚本update-rc.d
。使用update-rc.d lightdm disable
。
禁用graphical.target不起作用的原因是lightdm不了解graphical.target。它是一个初始化脚本,在所有多用户运行级别 (2-5) 上启动。