On Fri, 15.01.16 03:41, Pathangi Janardhanan ([email protected]) wrote: > Hi, > > I am using sd_notify_pid_with_fds and subsequently sd_notify_fds to store > and receive fds from systemd. > > Systemd differentiates between > > systemctl restart <service> -> Where it stops and starts the service, but > maintains the fd stored above > > whereas if I do systemctl stop <service> and then start, the fds are > cleaned out. > > This works well for me, but my question is that apart from the fds, the > service also stores local state and tries to restore them on start, and i > need the same logic for that data also. i.e. if the service is being > restarted than it stores that data otherwise it deletes and flsuhes them > out. > > So my question is, is there any way for the service to know when it is > being stopped that it is done for a restart versus stop command? > > Without that it seems difficult for the service to make the determination > to maintain/restore state or flush/init state?
Hmm, one option could be to serialize that data into a deleted temporary file, and pass the fd of that deleted file to PID 1. Then, if PID 1 closes the file the file will go on disk too, but if not, then your process will get the fd back and cna read it. Never tried this, but I think this should work. Could that work for you? Lennart -- Lennart Poettering, Red Hat _______________________________________________ systemd-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/systemd-devel
