0
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-07-13 21:50:33 +03:00

nixos/doc: document defining basic systemd services (#418385)

This commit is contained in:
Aleksana 2025-06-21 23:22:27 +08:00 committed by GitHub
commit 46968b2c89
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 25 additions and 1 deletions

View file

@ -121,7 +121,28 @@ Hence [garbage collection](#sec-nix-gc) will remove that file and you
will wind up with a broken symlink in your systemd configuration, which
in turn will not make the service / timer start on login.
## Template units {#sect-nixos-systemd-template-units}
### Defining custom services {#sect-nixos-systemd-custom-services}
You can define services by adding them to `systemd.services`:
```nix
systemd.services.myservice = {
after = [ "network-online.target" ];
requires = [ "network-online.target" ];
before = [ "multi-user.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "...";
};
};
```
If you want to specify a multi-line script for `ExecStart`,
you may want to use `pkgs.writeShellScript`.
### Template units {#sect-nixos-systemd-template-units}
systemd supports templated units where a base unit can be started multiple
times with a different parameter. The syntax to accomplish this is

View file

@ -1556,6 +1556,9 @@
"sect-nixos-systemd-nixos": [
"index.html#sect-nixos-systemd-nixos"
],
"sect-nixos-systemd-custom-services": [
"index.html#sect-nixos-systemd-custom-services"
],
"sect-nixos-systemd-template-units": [
"index.html#sect-nixos-systemd-template-units"
],