diff --git a/src/bin/proxmox_backup_client/mount.rs b/src/bin/proxmox_backup_client/mount.rs index 4f362dd2..54bf848e 100644 --- a/src/bin/proxmox_backup_client/mount.rs +++ b/src/bin/proxmox_backup_client/mount.rs @@ -182,10 +182,14 @@ async fn mount_do(param: Value, pipe: Option) -> Result { nix::unistd::close(pipe).unwrap(); } - let mut interrupt = signal(SignalKind::interrupt())?; + // handle SIGINT and SIGTERM + let mut interrupt_int = signal(SignalKind::interrupt())?; + let mut interrupt_term = signal(SignalKind::terminate())?; + let mut interrupt = futures::future::select(interrupt_int.next(), interrupt_term.next()); + select! { res = session.fuse() => res?, - _ = interrupt.recv().fuse() => { + _ = interrupt => { // exit on interrupted } }