On Di, 03.06.25 09:51, Imanol-Mikel Barba Sabariego (ima...@ima.lol) wrote:
> Hello everyone! > > I am trying to write an application that among other things, checks the > status of a systemd service unit. > > I was looking into the new varlink API and was hoping to make use of that > instead of the dbus API if I can help it, but unfortunately I don't see an > endpoint to be able to do basic unit management. There's a good reason you don't see that, because it doesn't exist. While we supprot Varlink for a lot of things, basic unit management is not among them yet, sorry. > I see references to a `io.systemd.service` unit: > - here: > https://github.com/systemd/systemd/blob/30f6240bd24a5a81ece8f878251f0d656ada29e3/src/shared/varlink-io.systemd.service.c io.systemd.service is a generic service that any system service can implement for some really basic operations, such as controlling the log level or so. It's strictly something services implement themselves though, not something PID 1 implements to control other stuff. > - and here: > https://github.com/systemd/systemd/blob/30f6240bd24a5a81ece8f878251f0d656ada29e3/test/units/TEST-13-NSPAWN.importctl.sh#L92 > > But I don't see that endpoint in my system: It's an interface, not an entrypoint socket. Also, it's a relatively recent addition. if you use systemd git you can do "varlinkctl introspect /run/systemd/io.systemd.Import" to see all interfaces a socket implements. since importd implements that new interfaces you should see io.systemd.service mong them. > ``` > $ ls -lhatr /var/run/systemd/io.systemd.* /var/run is a long obsolete alias for /run btw. > I can see there's documentation on how to use varlink in general, but is > there any documentation on how to enable specific systemd varlink endpoints? No need to enable them. They are all enabled already, but it's all recent stuff, and it doesn't cover everything the D-Bus APIs supported so far. Lennart -- Lennart Poettering, Berlin