diff --git a/crates/terminal/src/pty_info.rs b/crates/terminal/src/pty_info.rs index c92de2f23b83ba4dbedc6980ceb9b106d06467c1..60654378d9e53d8f5aa977900bd664a4a0898d67 100644 --- a/crates/terminal/src/pty_info.rs +++ b/crates/terminal/src/pty_info.rs @@ -125,6 +125,15 @@ impl PtyProcessInfo { self.system.process(pid) } + #[cfg(unix)] + pub(crate) fn kill_current_process(&mut self) -> bool { + let Some(pid) = self.pid_getter.pid() else { + return false; + }; + unsafe { libc::killpg(pid.as_u32() as i32, libc::SIGKILL) == 0 } + } + + #[cfg(not(unix))] pub(crate) fn kill_current_process(&mut self) -> bool { self.refresh().is_some_and(|process| process.kill()) }