Don't reload the systemd daemon when it's not needed.
This commit is contained in:
parent
10ee13b5b7
commit
542f0fea95
1 changed files with 19 additions and 15 deletions
|
|
@ -183,23 +183,27 @@ pub fn deactivate() -> Result<()> {
|
||||||
let old_services = read_saved_services()?;
|
let old_services = read_saved_services()?;
|
||||||
log::debug!("{:?}", old_services);
|
log::debug!("{:?}", old_services);
|
||||||
|
|
||||||
let service_manager = systemd::ServiceManager::new_session()?;
|
if !old_services.is_empty() {
|
||||||
let job_monitor = service_manager.monitor_jobs_init()?;
|
let service_manager = systemd::ServiceManager::new_session()?;
|
||||||
let timeout = Some(Duration::from_secs(30));
|
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
|
// We need to do this before we reload the systemd daemon, so that the daemon
|
||||||
// still knows about these units.
|
// still knows about these units.
|
||||||
wait_for_jobs(
|
wait_for_jobs(
|
||||||
&service_manager,
|
&service_manager,
|
||||||
job_monitor,
|
job_monitor,
|
||||||
stop_services(&service_manager, &old_services)?,
|
stop_services(&service_manager, &old_services)?,
|
||||||
&timeout,
|
&timeout,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
// We removed all old services, so let's reload the units so that
|
// We removed all old services, so let's reload the units so that
|
||||||
// the systemd daemon is up-to-date
|
// the systemd daemon is up-to-date
|
||||||
log::info!("Reloading the systemd daemon...");
|
log::info!("Reloading the systemd daemon...");
|
||||||
service_manager.daemon_reload()?;
|
service_manager.daemon_reload()?;
|
||||||
|
} else {
|
||||||
|
log::info!("No services to deactivate.");
|
||||||
|
}
|
||||||
|
|
||||||
serialise_saved_services(&HashMap::new())?;
|
serialise_saved_services(&HashMap::new())?;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue