nixos/doc: document defining basic systemd services
This commit is contained in:
parent
3e3afe5174
commit
aba83e0a5d
@ -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
|
||||
|
@ -1532,6 +1532,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"
|
||||
],
|
||||
|
Loading…
x
Reference in New Issue
Block a user