BIRD2 supports a 'graceful restart' command since version 2.0.5.
Lets expose this functionality in a 'gracefulrestart' rc command:
"service bird gracefulrestart"
The rc script would have to invoke the following:
"birdc graceful restart"
Note: This terminates bird but does not start it again (which is a bit counter-intuitive due to the name)!
This is useful when restarting a BGP speaker - either just the daemon (bird2 update):
"service bird gracefulrestart && service bird start"
or the entire system (kernel update):
"service bird gracefulrestart && reboot"
To make use of this, the protocols also need to be configured in bird's configuration. Example for BGP:
graceful restart yes;
graceful restart time 300;
BGP graceful restart is defined in RFC 4724
BIRD supports it also for other protocols.
So why not calling it 'service bird gracefulstop' in place of gracefulrestart if the purpose is to graceful stop it ?