Config...nstall(3pm)
π NAME π
okay bestie, so this is a User Contributed Perl Documentation page for Config::Model::models::Systemd::Section::Install πΈ β the configuration class Systemd::Section::Install, which is the whole vibe for the [Install] section of a systemd unit file. yes it is also a 3pm page. yes that means Perl module. we contain multitudes π
π DESCRIPTION π
These are configuration classes used by Config::Model β like, the little model classes that tell Config::Model how to read, validate and edit the [Install] bit of your systemd units. It's giving structure, it's giving schemas, it's giving "let the tool hold your hand while you enable services" π«Ά
β¨ Elements β¨
π Alias
A space-separated list of extra names this unit shall be installed under. bestie the names you list here must have the same suffix (i.e. type) as the unit filename β no mixing, the vibe check is strict here π€
You can specify this option more than once, and if you do, all the listed names get used. At installation time, systemctl enable will create symlinks from these names to the unit filename. it's literally just symlink slay β¨
β οΈ but heads up: not all unit types support these alias names, and this setting is not supported for them. specifically,mount,slice,swap, andautomountunits do not support aliasing. they said "not me" π
Optional. Type list of uniline.
π¦ WantedBy
This option may be used more than once, or a space-separated list of unit names may be given. A symbolic link is created in the ".wants/", ".requires/", or ".upholds/" directory of each of the listed units when this unit is installed by systemctl enable. That has the effect of a dependency of type "Wants", "Requires", or "Upholds" being added from the listed unit to the current unit β like the listed unit is the one reaching out, periodt. See the description of the mentioned dependency types in the [Unit] section for the deets π
In case of template units listing non template units, the listing unit must have "DefaultInstance" set, or systemctl enable must be called with an instance name. The instance (default or specified) will be added to the ".wants/", ".requires/", or ".upholds/" list of the listed unit. For example, WantedBy=getty.target in a service "getty@.service" will result in systemctl enable getty@tty2.service creating a "getty.target.wants/getty@tty2.service" link to "getty@.service". iconic behaviour honestly π
This also applies to listing specific instances of templated units: this specific instance will gain the dependency. A template unit may also list a template unit, in which case a generic dependency will be added where each instance of the listing unit will have a dependency on an instance of the listed template with the same instance value. For example, WantedBy=container@.target in a service "monitor@.service" will result in systemctl enable monitor@.service creating a "container@.target.wants/monitor@.service" link to "monitor@.service", which applies to all instances of "container@.target". template-ception, we love to see it π§
Optional. Type list of uniline.
π RequiredBy
This option may be used more than once, or a space-separated list of unit names may be given. A symbolic link is created in the ".wants/", ".requires/", or ".upholds/" directory of each of the listed units when this unit is installed by systemctl enable. This has the effect of a dependency of type "Wants", "Requires", or "Upholds" being added from the listed unit to the current unit β see the description of the mentioned dependency types in the [Unit] section for details π
In case of template units listing non template units, the listing unit must have "DefaultInstance" set, or systemctl enable must be called with an instance name. The instance (default or specified) will be added to the ".wants/", ".requires/", or ".upholds/" list of the listed unit. For example, WantedBy=getty.target in a service "getty@.service" will result in systemctl enable getty@tty2.service creating a "getty.target.wants/getty@tty2.service" link to "getty@.service". This also applies to listing specific instances of templated units: this specific instance will gain the dependency. A template unit may also list a template unit, in which case a generic dependency will be added where each instance of the listing unit will have a dependency on an instance of the listed template with the same instance value. For example, WantedBy=container@.target in a service "monitor@.service" will result in systemctl enable monitor@.service creating a "container@.target.wants/monitor@.service" link to "monitor@.service", which applies to all instances of "container@.target". yes this paragraph is the same as the last one and honestly? that's the point π
Optional. Type list of uniline.
πΈ UpheldBy
This option may be used more than once, or a space-separated list of unit names may be given. A symbolic link is created in the ".wants/", ".requires/", or ".upholds/" directory of each of the listed units when this unit is installed by systemctl enable. This has the effect of a dependency of type "Wants", "Requires", or "Upholds" being added from the listed unit to the current unit. See the description of the mentioned dependency types in the [Unit] section for details π«
In case of template units listing non template units, the listing unit must have "DefaultInstance" set, or systemctl enable must be called with an instance name. The instance (default or specified) will be added to the ".wants/", ".requires/", or ".upholds/" list of the listed unit. For example, WantedBy=getty.target in a service "getty@.service" will result in systemctl enable getty@tty2.service creating a "getty.target.wants/getty@tty2.service" link to "getty@.service". This also applies to listing specific instances of templated units: this specific instance will gain the dependency. A template unit may also list a template unit, in which case a generic dependency will be added where each instance of the listing unit will have a dependency on an instance of the listed template with the same instance value. For example, WantedBy=container@.target in a service "monitor@.service" will result in systemctl enable monitor@.service creating a "container@.target.wants/monitor@.service" link to "monitor@.service", which applies to all instances of "container@.target". okay so it really is copy-paste-adjacent and that is simply the canon, bestie π«Ά
Optional. Type list of uniline.
π Also
Additional units to install/deinstall when this unit is installed/deinstalled. so like, if the user requests installation/deinstallation of a unit with this option configured, systemctl enable and systemctl disable will automatically install/uninstall the units listed in this option as well. it's a "you get a friend, and you get a friend" moment π
This option may be used more than once, or a space-separated list of unit names may be given.
Optional. Type list of uniline.
β DefaultInstance
In template unit files, this specifies for which instance the unit shall be enabled if the template is enabled without any explicitly set instance. This option has no effect in non-template unit files. The specified string must be usable as instance identifier. no notes, that's the default main character π«‘
Optional. Type uniline.
π₯ SEE ALSO π₯
cme
okay final sign-off bestie: this absolute classic is running on perl v5.40.1 and was dated 2026-03-22 β go forth and .wants/ responsibly, ily, mwah πβ¨
π¦ where this page comes from
- ubuntu stonking: libconfig-model-systemd-perl 0.260.1-1 Β· LGPL-2.1-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms