root@gcomputer:~# systemctl status x11-common
● x11-common.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead)
我试过了systemctl unmask x11-common
,systemctl unmask x11-common.service
但这并没有改变任何东西。
我如何揭开它的面纱?
root@gcomputer:~# systemctl status x11-common
● x11-common.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead)
我试过了systemctl unmask x11-common
,systemctl unmask x11-common.service
但这并没有改变任何东西。
我如何揭开它的面纱?
您使用的命令都是正确的。另请参阅手册。
unmask
当系统中除了符号链接之外没有现有单元文件时,该命令似乎失败/dev/null
。如果您mask
是一个服务,那么它会创建一个新的符号链接,指向systemd/dev/null
在/etc/systemd/system
其中查找要在启动时加载的单元文件。在这种情况下,没有真正的单元文件。其他人似乎也有类似的问题
x11-common.service
在我的系统上也被屏蔽了。你可以像这样修复它:首先检查单元文件是否是一个符号链接
/dev/null
它应该返回:
在这种情况下,删除它
由于您更改了单元文件,因此您需要运行以下命令:
现在检查状态:
如果它没有说加载并运行(如果圆圈仍然是红色),请重新安装包:
并重新加载守护进程
并再次检查状态
现在它是绿色的并且正在运行 :) 该服务没有 systemd 单元文件,但 systemd 很高兴地使用脚本
/etc/init.d
代替它。请按照以下步骤操作:
systemctl edit systemd-hostnamed
添加下面的 2 行然后退出编辑器(提示时不要忘记保存):
这将在目录中创建一个包含上述 2 行的 override.conf 文件:
更新系统:
然后重启服务:
您现在应该能够在
hostnamectl
没有挂起的情况下运行。可能是您的服务有一个空的覆盖文件,如下所示:
检查limit.conf 是否为空文件。如果是,请删除它。然后应该取消屏蔽服务。
在这里,我展示了如何使用 systemctl 删除掩码