diff options
Diffstat (limited to 'qarsh.c')
-rw-r--r-- | qarsh.c | 12 |
1 files changed, 5 insertions, 7 deletions
@@ -214,7 +214,11 @@ run_remote_cmd(char *cmdline) FD_SET(qarsh_fd, &readfds); FD_SET(c_out, &readfds); FD_SET(c_err, &readfds); - FD_SET(fileno(stdin), &readfds); + /* Ignore stdin if it's a tty, we don't want to deal with + * tty i/o if we're a background process */ + if (!isatty(fileno(stdin))) { + FD_SET(fileno(stdin), &readfds); + } /* Setup signal handling stuff so we can propogate signals */ setup_signals(); @@ -419,12 +423,6 @@ main(int argc, char *argv[]) memset(&sa, 0, sizeof sa); sigemptyset(&sigmask); sa.sa_mask = sigmask; - sa.sa_handler = SIG_IGN; - sigaction(SIGTTIN, &sa, NULL); - - memset(&sa, 0, sizeof sa); - sigemptyset(&sigmask); - sa.sa_mask = sigmask; sa.sa_flags = SA_ONESHOT; sa.sa_handler = sig_alrm_handler; sigaction(SIGALRM, &sa, NULL); |