@@ -87,7 +87,7 @@ const REBIND_SYSTEMD_PID: &str = "auto";
8787
8888/// Settings for graceful restarts
8989pub struct RestartConfig {
90- /// Enables the restart coordination socket for graceful restarts as an alternative to the SIGUSR1 signal.
90+ /// Enables the restart coordination socket for graceful restarts as an alternative to a Unix signal.
9191 pub enabled : bool ,
9292 /// Socket path
9393 pub coordination_socket_path : PathBuf ,
@@ -97,6 +97,8 @@ pub struct RestartConfig {
9797 pub lifecycle_handler : Box < dyn LifecycleHandler > ,
9898 /// Exits early when child process fail to start
9999 pub exit_on_error : bool ,
100+ /// Sets the signal to listen to on restart. This defaults to SIGUSR1.
101+ pub restart_signal : SignalKind ,
100102}
101103
102104impl RestartConfig {
@@ -139,6 +141,7 @@ impl Default for RestartConfig {
139141 environment : vec ! [ ] ,
140142 lifecycle_handler : Box :: new ( lifecycle:: NullLifecycleHandler ) ,
141143 exit_on_error : true ,
144+ restart_signal : SignalKind :: user_defined1 ( ) ,
142145 }
143146 }
144147}
@@ -211,7 +214,7 @@ pub fn spawn_restart_task(
211214 false => None ,
212215 } ;
213216
214- let mut signal_stream = signal ( SignalKind :: user_defined1 ( ) ) ?;
217+ let mut signal_stream = signal ( settings . restart_signal ) ?;
215218 let ( restart_fd, mut socket_stream) = new_restart_coordination_socket_stream ( socket) ?;
216219 let mut child_spawner =
217220 ChildSpawner :: new ( restart_fd, settings. environment , settings. lifecycle_handler ) ;
0 commit comments