Modular services meeting #3 2026-06-26

modular services meeting #3 2026-06-26

Attendees: @EveeifyiEve, @lassulus, @roberth, @aanderse

Sync

Review lib/services: add some generalization options by Eveeifyeve · Pull Request #535695 · NixOS/nixpkgs · GitHub

Adds generalization support for reloading, readiness and runtime directory.

New options

  • reloadSignal
    • @aanderse: seems unused
    • @evee: not sure what @roberth wanted
    • @roberth: reloadCommand defaulting to signal should be fine
    • @roberth: we should specify what happens when both are specified. I’d lean towards forbidding by means of assertion
      • something with options.reloadCommand.highestPrio == optionDefaultPrio
  • reloadCommand
  • runtimeDirectory
    • @roberth: It’s not clear to me who is supposed to set this, e.g. systemd vs user (probably not module author)
    • @aanderse: We had this idea where options are about declaring the intent of a module
    • @aanderse: Only systemd supports this out of the box. Other service managers [integrations] can fill the gap if they need to
  • runtimePermission
  • serviceManager.notificationProtocol
    • @roberth: I would expect this option path to say "the service manager supports this protocol (/ maybe these protocols)
    • @aanderse: with finit we might want to expose what we support
    • @aanderse: I’d move it to top level because it’s about the service itself. I’d punt on the service manager introspection until we have a real need
    • @roberth: I agree
  • serviceManager.preserveRuntimeDirectory

Implementation

  • @aanderse: setting Type there is nice
  • @roberth: mainExecReload is analogous to mainExecStart, allowing systemd-specific escape hatch for %n interpolation support

Please split out runtimeDirectory so we can settle the reload options sooner

Action items

  • roberth: review environment PR
  • lassulus: flags
  • aanderse: will port new options to finit when done
  • evee: implement review feedback
4 Likes