Open vamega opened 2 years ago
Not to say that having it directly in the code wouldn't be useful, but you can already accomplish your goal with the available event bindings and systemd-notify
:
# Startup
method.set_key = event.system.startup_done, notify_systemd, "execute=/bin/systemd-notify,--ready,--status,(cat,SESSION=,(session.name)),--pid,(system.pid)"
# Shutdown
method.set_key = event.system.shutdown, notify_systemd, "execute=/bin/systemd-notify,STOPPING=1"
Great idea.
I don't want the binary to link against libsystemd, though. Is there a standalone solution?
@kannibalox thanks I wasn’t aware of that. Should have looked at the configuration options more closely.
@jesec I could probably make this work by opening a Unix datagtam socket and sending the data myself.
Is there a reason you’re opposed to linking against systemd?
Not all systems have systemd or libsystemd. You may find this useful: https://github.com/lnicola/sd-notify.
i knew this project is not in Rust, but you can check out the logic.
Would you be open to accepting a patch that lets rtorrent notify systemd when it is ready? This would allow writing of systemd service files that start flood/rutorrent after rtorrent has started up.
The systemd service type would switch to Type=notify.
Assuming you're okay with this, my plan would be the following.
I'm thinking I'll have this behind a configure flag, since the simplest approach would involve calling sd_notify.
-DUSE_SYSTEMD
seems like the reasonable flag for CMake.I'm less familiar with Bazel, any pointers to how to support a build option like that with Bazel would be appreciated.