>>>>> Ivan Shmakov <i...@gray.siamics.net> writes: […]
> I should probably try to compare strace(1)'s… I've grep'ed the strace for “rt_sig”. The results for the first and second SIGTSTP are MIME'd. And there's a difference: • first SIGTSTP: rt_sigaction(SIGTSTP, {0x7f061efbf800, [], SA_RESTORER|SA_RESTART, 0x7f061e5461e0}, NULL, 8) = 0 • second SIGTSTP: rt_sigaction(SIGTSTP, {SIG_IGN}, NULL, 8) = 0 Do I understand it correctly that the SIGTSTP signal handler is not properly reset in the latter case? -- FSF associate member #7257
rt_sigprocmask(SIG_BLOCK, [ALRM WINCH], [TSTP], 8) = 0 rt_sigprocmask(SIG_BLOCK, [TTOU], NULL, 8) = 0 rt_sigprocmask(SIG_UNBLOCK, [TSTP TTOU], NULL, 8) = 0 rt_sigaction(SIGTSTP, {SIG_DFL}, {0x7f061efbf800, [], SA_RESTORER|SA_RESTART, 0x7f061e5461e0}, 8) = 0 rt_sigaction(SIGTSTP, {0x7f061efbf800, [], SA_RESTORER|SA_RESTART, 0x7f061e5461e0}, NULL, 8) = 0 rt_sigaction(SIGTSTP, {SIG_IGN}, {0x7f061efbf800, [], SA_RESTORER|SA_RESTART, 0x7f061e5461e0}, 8) = 0 rt_sigaction(SIGWINCH, {0x7f0617332330, [], SA_RESTORER, 0x7f061e5461e0}, {0x443ee0, [WINCH], SA_RESTORER|SA_RESTART, 0x7f061e5461e0}, 8) = 0 rt_sigaction(SIGTSTP, {SIG_IGN}, {SIG_IGN}, 8) = 0 rt_sigaction(SIGTSTP, {0x7f061efbf800, [], SA_RESTORER|SA_RESTART, 0x7f061e5461e0}, NULL, 8) = 0 rt_sigprocmask(SIG_SETMASK, [TSTP], NULL, 8) = 0 rt_sigreturn(0x2) = 0
rt_sigprocmask(SIG_BLOCK, [ALRM WINCH], [TSTP], 8) = 0 rt_sigprocmask(SIG_BLOCK, [TTOU], NULL, 8) = 0 rt_sigaction(SIGTSTP, {SIG_IGN}, NULL, 8) = 0 rt_sigaction(SIGWINCH, {0x443ee0, [WINCH], SA_RESTORER|SA_RESTART, 0x7f061e5461e0}, NULL, 8) = 0 rt_sigprocmask(SIG_UNBLOCK, [TSTP TTOU], NULL, 8) = 0 rt_sigaction(SIGTSTP, {SIG_DFL}, {SIG_IGN}, 8) = 0 rt_sigaction(SIGTSTP, {SIG_IGN}, NULL, 8) = 0 rt_sigaction(SIGTSTP, {SIG_IGN}, {SIG_IGN}, 8) = 0 rt_sigaction(SIGWINCH, {0x7f0617332330, [], SA_RESTORER, 0x7f061e5461e0}, {0x443ee0, [WINCH], SA_RESTORER|SA_RESTART, 0x7f061e5461e0}, 8) = 0 rt_sigaction(SIGTSTP, {SIG_IGN}, {SIG_IGN}, 8) = 0 rt_sigaction(SIGTSTP, {SIG_IGN}, NULL, 8) = 0 rt_sigprocmask(SIG_SETMASK, [TSTP], NULL, 8) = 0 rt_sigreturn(0x2) = 0