systemctl,如何取消屏蔽

root@gcomputer:~# systemctl status x11-common ● x11-common.service Loaded: masked (/dev/null; bad) Active: inactive (dead) 

我试过systemctl unmask x11-commonsystemctl unmask x11-common.service但是没有改变任何东西。

我如何揭开它?

您使用的命令都是正确的 。 另请参见手册 。

当系统中没有现有的单元文件而不是/dev/null的符号链接时,似乎unmask命令失败。 如果mask服务,则会在/etc/systemd/system中为/dev/null创建一个新的符号链接,其中systemd查找要在引导时加载的单元文件。 在这种情况下,没有真正的单元文件。

其他人似乎也有类似的问题

我的系统上也屏蔽了x11-common.service 。 你可以像这样解决它:

首先检查单元文件是/dev/null的符号链接

 file /lib/systemd/system/x11-common.service 

它应该返回:

 /lib/systemd/system/x11-common.service: symbolic link to /dev/null 

在这种情况下,删除它

 sudo rm /lib/systemd/system/x11-common.service 

由于您更改了单元文件,因此需要运行以下命令:

 sudo systemctl daemon-reload 

现在检查状态:

 systemctl status x11-common 

如果它没有说加载和运行(如果圆仍然是红色),重新安装包:

 sudo apt-get install --reinstall x11-common 

然后重新加载守护进程

 sudo systemctl daemon-reload 

并再次检查状态

 systemctl status x11-common 

现在它是绿色并运行:)该服务没有systemd单元文件,但systemd很高兴在/etc/init.d使用它的脚本。

请按照以下步骤操作:

  1. systemctl edit systemd-hostnamed

    添加下面两行然后退出编辑器(提示时不要忘记保存):

     [Service] PrivateNetwork=no 
  2. 这将在目录中创建一个包含以上2行的override.conf文件:

     /etc/systemd/system/systemd-hostnamed.service.d/ 
  3. 更新系统:

     systemctl daemon-reload 
  4. 然后重启服务:

     systemctl restart systemd-hostnamed 

您现在应该可以在不挂起的情况下运行hostnamectl