systemctl, how to unmask
The commands you are using are both correct. See also the manual.
It seems the unmask
command fails when there is no existing unit file in the system other than the symlink to /dev/null
. If you mask
a service, then that creates a new symlink to /dev/null
in /etc/systemd/system
where systemd looks for unit files to load at boot. In this case, there is no real unit file.
Others seem to have similar issues
x11-common.service
was also masked on my system. You can fix it like this:
First check that the unit file is a symlink to /dev/null
file /lib/systemd/system/x11-common.service
it should return:
/lib/systemd/system/x11-common.service: symbolic link to /dev/null
in which case, delete it
sudo rm /lib/systemd/system/x11-common.service
Since you changed a unit file, you need to run this:
sudo systemctl daemon-reload
now check the status:
systemctl status x11-common
if it doesn't say loaded and running (if the circle is still red), reinstall the package:
sudo apt-get install --reinstall x11-common
and reload the daemon again
sudo systemctl daemon-reload
and check status once more
systemctl status x11-common
Now it's green and running :) The service has no systemd unit file, but systemd happily uses the script for it in /etc/init.d
instead.
It could be your service has an empty override file, like this:
● redis-server.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; masked; vendor preset: enabled)
Drop-In: /etc/systemd/system/redis-server.service.d
└─limit.conf
Check if limit.conf is an empty file. If it is, please remove it. Then the service should be unmasked.