I ended up picking this up and implementing it, and in my experiments it seems to be working fine
Patch attached - Erin On Tue, 20 Jun 2023, at 21:07, Maria Matejka via Bird-users wrote: > Hello! > > Well, it's a pity that systemd doesn't allow for custom operations – in such > case you could call "systemd graceful bird2" or "systemd restart bird2"… > > Anyway, feel free to implement it, it should be like 10 lines of code. > Sigusr2 is probably ok. Then it'll be on anybody to choose whether to restart > gracefully or hardly by systemd. > > Maria > > > On 20 June 2023 20:20:50 CEST, Erin Shepherd <bird-us...@erinshepherd.net> > wrote: >> Hello, >> >> I run bird on a system which uses systemd as a service supervisor, and would >> like to implement graceful restart in a way which works well with it. >> >> In particular, what I'd like to do is: >> • If I restart the bird service (e.g. for an upgrade), Bird performs a >> graceful restart >> • If I manually stop bird (systemctl stop bird2), shutdown the system, or >> any other action which is liable to cause a longer period of downtime, >> perform a graceful restart (for BGP at least) >> Ideally systemd would have an ExecStopRestart option which could be used to >> distinguish between stops and restarts, but unfortunately it doesn't (I >> might submit a feature request for this regardless). However, it does >> support `KillSignal and RestartKillSignal options.` >> >> `So therefore I was wondering how the Bird developers and users would feel >> about introducing a signal (SIGUSR2 maybe?) which can be used to request >> that Bird perform a graceful restart?` >> >> `- Erin` > -- > Maria Matejka (she/her) | BIRD Team Leader | CZ.NIC, z.s.p.o.
0001-Add-support-for-graceful-restart-by-signal-SIGUSR2.patch
Description: Binary data