systemd – 如何列出所有被屏蔽的单位

有没有简单的方法来列出所有systemd被屏蔽的单位?

我能想到:

ls -l /etc/systemd/system/* | grep /dev/null 

或(仅限于单元名称):

 ls -l /etc/systemd/system/* | grep /dev/null | cut -d' ' -f12 | awk -F'/' '{ print $(NF) }' 

有没有更清晰的方法?

我认为获取这些信息的最好方法可能是:

 systemctl list-unit-files | grep masked 

或者,对于单位名称:

 systemctl list-unit-files | awk '/masked/ {print $1}' 

当然,这些表达式中的任何一个实际上都会匹配名称中包含“掩码”的单位。 更准确的是:

 systemctl list-unit-files | awk '$2 == "masked" {print $1}' 

--state选项可以完成这项工作

 systemctl list-unit-files --state=masked 

在你的情况下,答案相当不错。

如何使用Systemctl来管理系统服务和单位