diff --git a/src/main.rs b/src/main.rs
index 7328eb3873cb5507cb94b847b47a44bd0beee37e..e4cfded66f2d2c065ebfb1a2ff02110d9eea8f02 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -132,6 +132,9 @@ fn parse_args() -> CommandLineArgs {
 
 fn set_unique_pid() -> nix::Result<()> {
     let pgid = unistd::getpid();
+    if pgid == unistd::tcgetpgrp(nix::libc::STDIN_FILENO)? {
+        return Ok(());
+    }
     unistd::setpgid(pgid, pgid)?;
     unsafe { signal::signal(Signal::SIGTTOU, SigHandler::SigIgn) }?;
     unistd::tcsetpgrp(nix::libc::STDIN_FILENO, pgid)