Always reload the daemon on deactivate.

This commit is contained in:
r-vdp 2023-03-30 15:02:14 +02:00
parent 360b0ce3c5
commit f864149440
No known key found for this signature in database

View file

@ -54,6 +54,7 @@ pub fn activate(store_path: &StorePath, ephemeral: bool) -> Result<()> {
// 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.
// TODO: handle jobs that were not running, this throws an error now.
wait_for_jobs( wait_for_jobs(
&service_manager, &service_manager,
&job_monitor, &job_monitor,
@ -182,8 +183,8 @@ pub fn deactivate() -> Result<()> {
let old_services = read_saved_services()?; let old_services = read_saved_services()?;
log::debug!("{:?}", old_services); log::debug!("{:?}", old_services);
if !old_services.is_empty() {
let service_manager = systemd::ServiceManager::new_session()?; let service_manager = systemd::ServiceManager::new_session()?;
if !old_services.is_empty() {
let job_monitor = service_manager.monitor_jobs_init()?; let job_monitor = service_manager.monitor_jobs_init()?;
let timeout = Some(Duration::from_secs(30)); let timeout = Some(Duration::from_secs(30));
@ -195,14 +196,11 @@ pub fn deactivate() -> Result<()> {
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
// the systemd daemon is up-to-date
log::info!("Reloading the systemd daemon...");
service_manager.daemon_reload()?;
} else { } else {
log::info!("No services to deactivate."); log::info!("No services to deactivate.");
} }
log::info!("Reloading the systemd daemon...");
service_manager.daemon_reload()?;
serialise_saved_services(&HashMap::new())?; serialise_saved_services(&HashMap::new())?;