How should I interpret "startup" column in "maas status"?

Hi all. My “maas status” shows most services are disabled in the “Startup” column, but they still start after I run “maas restart”.

These services should be active since I’m using maas’ builtin dhcpd, for example. So I’m not sure why they would be marked “disabled”.

$ sudo maas status
Service          Startup   Current   Since
agent            disabled  active    today at 13:21 UTC
apiserver        enabled   active    today at 13:20 UTC
bind9            disabled  active    today at 13:20 UTC
dhcpd            disabled  active    today at 13:21 UTC
dhcpd6           disabled  inactive  -
http             disabled  active    today at 13:20 UTC
ntp              disabled  active    today at 13:20 UTC
proxy            disabled  active    today at 13:20 UTC
rackd            enabled   active    today at 13:20 UTC
regiond          enabled   active    today at 13:20 UTC
syslog           disabled  active    today at 13:20 UTC
temporal         disabled  active    today at 13:20 UTC
temporal-worker  disabled  active    today at 13:20 UTC

How should I interpret this? Is it a bug that they appear “disabled”? Or am I misunderstanding what “Startup” means?

Hi @merlijn-sebrechts

The maas snap is using Pebble as a service manager. The maas status command is a wrapper of pebble services, and Startup column shows whether this service is automatically started when Pebble starts (“enabled” means auto-start, “disabled” means don’t auto-start), based on the relevant docs.

As of why MAAS is starting the Region and Rack controllers with most of the services not auto-starting, this is by design. In general, Pebble works with a concept of configuration layers. This is the place in the MAAS codebase where layers are defined: maas/snap/local/tree/usr/share/maas/pebble/layers at master · canonical/maas · GitHub

So what is the reason they start even though they’re disabled?

  1. Is it because they’re dynamically started by other services? (using, for example, the pebble API?)
  2. Or is it because their startup is “hidden” in a layer?