nixos/kubo: unmount on service stop

When kubo is force killed with `pkill -KILL ipfs` or by systemd-oomd,
it doesn't unmount /ipfs and /ipns. That prevents it
from starting up the next time. So, unmount on postStop.
This commit is contained in:
Karmanyaah Malhotra 2023-01-31 11:32:20 -05:00 committed by Karmanyaah Malhotra
parent 28949db47e
commit 4bd622cd9d
2 changed files with 6 additions and 0 deletions

View file

@ -332,6 +332,8 @@ In addition to numerous new and upgraded packages, this release has the followin
[headscale's example configuration](https://github.com/juanfont/headscale/blob/main/config-example.yaml) [headscale's example configuration](https://github.com/juanfont/headscale/blob/main/config-example.yaml)
can be directly written as attribute-set in Nix within this option. can be directly written as attribute-set in Nix within this option.
- `services.kubo` unmounts `ipfsMountDir` and `ipnsMountDir` even if it is killed uncleanly, when 'autoMount` is enabled.
- `nixos/lib/make-disk-image.nix` can now mutate EFI variables, run user-provided EFI firmware or variable templates. This is now extensively documented in the NixOS manual. - `nixos/lib/make-disk-image.nix` can now mutate EFI variables, run user-provided EFI firmware or variable templates. This is now extensively documented in the NixOS manual.
- `services.grafana` listens only on localhost by default again. This was changed to upstreams default of `0.0.0.0` by accident in the freeform setting conversion. - `services.grafana` listens only on localhost by default again. This was changed to upstreams default of `0.0.0.0` by accident in the freeform setting conversion.

View file

@ -319,6 +319,10 @@ in
# change when the changes are applied. Whyyyyyy..... # change when the changes are applied. Whyyyyyy.....
ipfs --offline config replace - ipfs --offline config replace -
''; '';
postStop = mkIf cfg.autoMount ''
# After an unclean shutdown the fuse mounts at ${cfg.ipnsMountDir} and ${cfg.ipfsMountDir} are locked
umount --quiet '${cfg.ipnsMountDir}' '${cfg.ipfsMountDir}' || true
'';
serviceConfig = { serviceConfig = {
ExecStart = [ "" "${cfg.package}/bin/ipfs daemon ${kuboFlags}" ]; ExecStart = [ "" "${cfg.package}/bin/ipfs daemon ${kuboFlags}" ];
User = cfg.user; User = cfg.user;