Don't reload the systemd daemon when it's not needed.

This commit is contained in:
r-vdp 2023-03-21 23:59:26 +01:00
parent 10ee13b5b7
commit 542f0fea95
No known key found for this signature in database

View file

@ -183,23 +183,27 @@ pub fn deactivate() -> Result<()> {
let old_services = read_saved_services()?;
log::debug!("{:?}", old_services);
let service_manager = systemd::ServiceManager::new_session()?;
let job_monitor = service_manager.monitor_jobs_init()?;
let timeout = Some(Duration::from_secs(30));
if !old_services.is_empty() {
let service_manager = systemd::ServiceManager::new_session()?;
let job_monitor = service_manager.monitor_jobs_init()?;
let timeout = Some(Duration::from_secs(30));
// We need to do this before we reload the systemd daemon, so that the daemon
// still knows about these units.
wait_for_jobs(
&service_manager,
job_monitor,
stop_services(&service_manager, &old_services)?,
&timeout,
)?;
// We need to do this before we reload the systemd daemon, so that the daemon
// still knows about these units.
wait_for_jobs(
&service_manager,
job_monitor,
stop_services(&service_manager, &old_services)?,
&timeout,
)?;
// We removed all old services, so let's reload the units so that
// the systemd daemon is up-to-date
log::info!("Reloading the systemd daemon...");
service_manager.daemon_reload()?;
// We removed all old services, so let's reload the units so that
// the systemd daemon is up-to-date
log::info!("Reloading the systemd daemon...");
service_manager.daemon_reload()?;
} else {
log::info!("No services to deactivate.");
}
serialise_saved_services(&HashMap::new())?;