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
> 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