In the systemd world, you should be aware of the difference between disabling and masking a service unit.
To prevent a service unit that corresponds to a system service from being automatically started at boot time:
# systemctl disable name.service
When invoked systemd reads the [Install] section of the selected service unit and removes the appropriate symbolic link. In RHEL7, for example, the symbolic link would be to the /usr/lib/systemd/system/name.service file from the /usr/lib/systemd/system/ directory.
Every service unit that is known to systemd may be started if it is needed – even if it is disabled. To explicitly tell systemd that a service should never run, you have to use the mask command:
# systemctl mask name.service
This command replaces the /etc/systemd/system/name.service unit file with a symbolic link to /dev/null, rendering the actual unit file inaccessible to systemd.
To revert this action and unmask a service unit:
# systemctl unmask name.service
useful article. However I have a service that is masked and when I unmask it is stays masked, also after a reboot. Do you know of any reasons why it won’t unmask ?