in src/vtok_agent/src/agent/mod.rs [198:226]
fn restart_webserver(service: &str, wait_ms: u64, service_config_override: Option<&str>) {
let service_name = format!("{}.service", service);
info!("Restarting {}.", service_name);
if let Ok(pid) = is_service_running(&service_name) {
debug!("Sending SIGWINCH to PID={}", pid);
//http://nginx.org/en/docs/control.html
//https://httpd.apache.org/docs/2.4/stopping.html#gracefulstop
signal::kill(unistd::Pid::from_raw(pid), signal::Signal::SIGWINCH).unwrap_or_else(
|err| {
error!("Error sending SIGWINCH: {:?}", err);
},
);
std::thread::sleep(Duration::from_millis(wait_ms));
} else {
info!("{} service is not running", service_name);
}
if let Some(config_str) = service_config_override {
if let Err(override_err) = override_service_config(service, config_str) {
error!("Can't override the {} systemd service config: {:?}", service, override_err);
}
};
service_restart(&service_name).unwrap_or_else(|err| {
error!("Unable to restart {}: {:?}", service_name, err);
});
}