fn restart_webserver()

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);
        });
    }