particle-os-modules/modules/systemd/README.md
fiftydinar 33226b9b73
feat(systemd): Add support for unmasking & masking units (#88)
* feat(systemd): Add support for masking services

* Use unit term in README

* Fix README grammar

* Note about unmasking

* Fix typo in README

* Add unmask & more info about systemctl commands

Address:

https://github.com/ublue-os/bling/pull/88#discussion_r1436877565

https://github.com/ublue-os/bling/pull/88#discussion_r1436917124

* docs: clarify purpose of unmasking

* docs: Fix systemd module README typo

---------

Co-authored-by: xyny <60004820+xynydev@users.noreply.github.com>
2023-12-31 10:31:49 +00:00

63 lines
2.2 KiB
Markdown

# `systemd` Module for Startingpoint
The `systemd` module streamlines the management of systemd units during image building. Units are divided into `system` and `user` categories, with `system` units managed directly using `systemctl` and `user` units using `systemctl --user`. You can specify which units to enable/disable or unmask/mask under each category.
## Example Configuration
```yaml
type: systemd
system:
enabled:
- example.service
disabled:
- example.target
unmasked:
- example.service
masked:
- example.service
user:
enabled:
- example.timer
disabled:
- example.service
unmasked:
- example.service
masked:
- example.service
```
In this example:
### System Units
- `example.service`: Enabled (runs on system boot)
- `example.target`: Disabled (does not run on system boot, unless other unit strictly requires it)
- `example.service`: Unmasked (runs on system boot, even if previously masked)
- `example.service`: Masked (does not run on system boot, under any circumstances)
### User Units
- `example.timer`: Enabled (runs for the user)
- `example.service`: Disabled (does not run for the user, unless other unit strictly requires it)
- `example.service`: Unmasked (runs for the user, even if previously masked)
- `example.service`: Masked (does not run for the user, under any circumstances)
This configuration achieves the same results as the following commands:
```sh
# System Units
systemctl enable example.service
systemctl disable example.target
systemctl unmask example.service
systemctl mask example.service
# User Units
systemctl --global enable example.timer
systemctl --global disable example.service
systemctl --global unmask example.service
systemctl --global mask example.service
```
For more information about these systemctl commands, please visit:
https://www.freedesktop.org/software/systemd/man/latest/systemctl.html#enable%20UNIT%E2%80%A6
https://www.freedesktop.org/software/systemd/man/latest/systemctl.html#disable%20UNIT%E2%80%A6
https://www.freedesktop.org/software/systemd/man/latest/systemctl.html#unmask%20UNIT%E2%80%A6
https://www.freedesktop.org/software/systemd/man/latest/systemctl.html#mask%20UNIT%E2%80%A6