SailorD systemd viewer application

I have just published a little app on Chum: SailorD

It is a viewer (and optionally manager) for systemd units, and rudimentary monitor (it reports unit failure).

Consider this an Alpha release/preview - mainly to gauge interest and collect suggestions on how to improve it.

It is very similar in function and purpose to the venerable and more mature SailUnit by @adekker (but differs internally in some aspects, like that SailorD uses purely qml dbus interfaces to talk to systemd without any additional binaries or scripts).

Get your SailfishOS device some D!

Some words of warning:

If you enable “Unit Control”, i.e. the feature to start/stop/… units, you should have a thorough understanding of what the different states and service types mean and how to interpret them.

On first view, you might see many services in some kind of “not running” state. For most of them this is okay and normal. Do not try to manually start them. (Things like oneshot or dbus-activated services are not running until triggered.)
Sometimes even a failed state is okay and normal - e.g. apparently dismissed alarms are implemented as a service that fails (and restarts) until the alarm is aquitted.

Conversely, stopping or disabling running services may also have unintended consequences, for obvious and not-so-obvious reasons. This may range from application not launching (e.g. because you stopped a booster service) to your phone not booting any more.

Caveat emptor.

App is here, best installed through Chum GUI .

Source code is here , issues, enhancements, and other contributions welcome as always!


It’s also a nice introduction to Nemo.DBus, from the vantage of a how to. Thanks!

I consider this high praise - thanks!

My personal takeaway though is that there is nothing nice about dbus generally :smiley:

Once you went through a bit of pain though Nemo.dbus works okay.

Possible to get in the official Store?

Unlikely, as I have to ship a SailJail application profile in order to talk to dbus/systemd. I think doing that is not allowed.

But I don’t know the specifics of store restrictions wrt. that.

Well, you’ve taken a bit of pain out of it for me. At some point I can’t lean on xdg-open to talk to other apps/services :slight_smile:

One thing to be aware of is there is lots of type conversions happening, which in complex cases can fail or do unintended stuff.

It’s QML type <-> JS type <-> (?? Qt/GLib ??) <-> dbus.
If you find something weird happening look at the nemo src to see which gets converted to which.

Same goes for Nemo.Configuration and dconf types.

Also sometimes you can get a name clash, e.g. systemd1.Service has a ‘Transient’ property which would map to a ‘transient’ property in QML, but ‘transient’ is a reserved word there.

1 Like