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:
commit
46968b2c89
2 changed files with 25 additions and 1 deletions
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
],
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue