Red Hat Bugzilla – Bug 990177
systemctl uses ambiguous terms to disable and to enable services
Last modified: 2013-09-16 03:17:43 EDT
Description of problem:
Running "systemctl disable <some.service>" does not disable the service but puts it into a state of being enabled and started on demand. The service will only be disabled when "mask" is used instead of "disable".
Users expect to mean "disable" that something is actually switched off and will not run.
When you look at ,  and  and other messages in the thread, you'll find some agreement about what "disabled" means.
Use less ambiguous terms instead, like:
boot | always
needed | ondemand
never | disable[d]
To allow for a transition to these terms, the ones currently in use would have to be left unchanged for some time.
Hmm? If you are talking of a socket actviated service, then you need to disable the socket too...
What else do you mean by "started on demand"?
Current terminology is here to stay, for better or worse. Meaning of some of the terms is tricky, but at least it's well documented.
(In reply to Lennart Poettering from comment #1)
> Hmm? If you are talking of a socket actviated service, then you need to
> disable the socket too...
> What else do you mean by "started on demand"?
Services that are "disabled" can still be started, which means that they are not disabled.
BTW, even if well documented, the terminology used is utterly misleading, and it will lead to unwanted results since people are not computers. You could as well argue that blue is green because you have documented it so well --- people are just going to have to imagine the picture in different colours ...
PS: Do it for traffic lights and document that red is green. Then see what happens.
PPS: At least a warning could be printed when someone uses "disable", like: "The service can still be started; please use 'mask' to disable it."