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()?;
|
||||
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())?;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue