我尝试启动wpa_supplicant.service
,但出现以下错误:
无法启动 wpa_supplicant.service:单元 wpa_supplicant.service 被屏蔽。
我尝试使用 来揭开它systemctl unmask wpa_supplicant.service
,但它似乎没有改变任何东西。
systemctl status wpa_supplicant.service
回报
已加载:屏蔽(/usr/lib/systemd/system/wpa_supplicaant.service;屏蔽;供应商预设:禁用) 活动:非活动(死)
真正奇怪的是,当我检查该wpa_supplicant.service
文件时,它是一个空文档。
我怎样才能揭开服务的面纱?
答案1
8 条评论,没有答案 - 真的,伙计们,专注于问题。如何揭开系统服务的面具!!!!您可以尝试systemctl unmask your_app.service
,但如果您的服务链接已符号链接到/dev/null
,则此操作将会失败。以下是推荐流程:
检查单元文件是否是以下符号链接
/dev/null
:file /lib/systemd/system/your_app.service OR file /etc/systemd/system/your_app.service
它应该返回:
/lib/systemd/system/your_app.service: symbolic link to /dev/null
删除符号链接:
sudo rm /lib/systemd/system/your_app.service
当您更改服务时重新加载 systemd 守护进程:
sudo systemctl daemon-reload
检查状态:
systemctl status your_app
祝您主持愉快:)
答案2
空(0 字节)的服务单元将被解析为systemd
掩码。虽然systemctl mask <unit>
通过将服务符号链接到 来工作/dev/null
,但 systemd 似乎只是在读取时检查文件是否为 0 字节,以确定某个单元是否被屏蔽。这会导致有关屏蔽服务的误导性消息。
您需要弄清楚为什么服务单元是空的。
至于如何取消屏蔽单元文件为空的服务...您可以通过使单元非空来“取消屏蔽”服务,这将取决于为什么该单元是空的。