Hacker News new | ask | show | jobs
by USiBqidmOOkAqRb 659 days ago
Yet systemd doesn't have an equivalent to runit's sv once. Also, everything's so opaque that I can't figure out why nftables ruleset isn't loaded on boot, but systemctl restart works correctly (all on Ubuntu 24 server without any kind of frills added).
2 comments

> Yet systemd doesn't have an equivalent to runit's sv once.

It's a design difference - systemd assumes services know whether they are intended to run once or restart under various conditions. If you want that behaviour it's just a matter of a tweak to the .service file.

> Also, everything's so opaque that I can't figure out why nftables ruleset isn't loaded on boot

Has it been disabled? ("systemctl enable [service name]" will enable it)

> Yet systemd doesn't have an equivalent to runit's sv once.

I'm not familiar with runit. Is this approximately equivalent to 'systemctl start service' when service uses the default of Restart=no ?

Yes, but, as the name implies, only once, and selectively at runtime. If you have a service and issue sv once on it, it will not be restarted, but its configuration is not changed so it will run normally after system restart.
That's a one-shot service[1].

RemainAfterExit=yes is what achieves the effect (i.e. if the process terminates it is regarded as still active for system-dependency purposes / status unless you purposefully mark it otherwise).

[1] https://www.redhat.com/sysadmin/systemd-oneshot-service