当我运行命令
这是我机器上的一小段内容:
我想知道为什么有些服务处于“屏蔽”状态。我认为这意味着“这比‘禁用’更好,因为无论是手动还是通过systemd都无法启动该服务”。
如何获取有关服务单元状态的更多信息?
是谁将这些单元放入了各自的状态中?
例如,我尝试了以下命令: sudo systemctl help dsmcad - 这只会显示来自单元文件的documentation = ...行。/etc/systemd/system/dsmcad.service 注意:在这里,我非常清楚dsmcad服务是什么以及它的作用,我自己安装了它。我更感兴趣的是一个通用解决方案。
sudo systemctl list-unit-files
(我认为sudo是可选的)时,我会得到一个显示所有服务及其状态的输出。这是我机器上的一小段内容:
UNIT FILE STATE
...
debian-fixup.service static
debug-shell.service disabled
display-manager.service enabled
dns-clean.service enabled
dsmcad.service enabled
emergency.service static
failsafe-x.service static
friendly-recovery.service masked
fuse.service masked
gdm.service masked
getty-static.service static
getty@.service enabled
gpsd.service indirect
gpsdctl@.service static
gpu-manager.service enabled
halt-local.service static
halt.service masked
hostname.service masked
...
我想知道为什么有些服务处于“屏蔽”状态。我认为这意味着“这比‘禁用’更好,因为无论是手动还是通过systemd都无法启动该服务”。
如何获取有关服务单元状态的更多信息?
是谁将这些单元放入了各自的状态中?
例如,我尝试了以下命令: sudo systemctl help dsmcad - 这只会显示来自单元文件的documentation = ...行。/etc/systemd/system/dsmcad.service 注意:在这里,我非常清楚dsmcad服务是什么以及它的作用,我自己安装了它。我更感兴趣的是一个通用解决方案。
mask
和unmask
命令可以与systemctl
一起使用。所以只需执行systemctl unmask name_of_service.service
即可。 - Kellerspeichersystemctl unmask name_of_service.service
命令会完全从/etc/systemd/system/
目录中删除我的服务定义文件,所以现在我需要重新添加它。如果它再次被屏蔽,我将陷入一个循环中。 - Eldamir/etc/systemd/system
中只有服务的符号链接。你应该将*.service
文件添加到/lib/systemd/system
,然后如果你enable
这个服务,它会被链接到/etc/systemd/system
。mask
是创建一个指向/dev/null
的链接,而unmask
则是从/etc/systemd/system
中删除此链接,显然,如果有人在那里放置一个文件,这没有任何区别。 - Kellerspeicher