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.

Attachment: 0001-Add-support-for-graceful-restart-by-signal-SIGUSR2.patch
Description: Binary data

Reply via email to