既然已经有 SIGSTOP,为什么 SIGTSTP 还存在?

Ste*_*sky 3 terminal signals

我一直认为Ctrl-Z在终端中(在规范模式下)生成SIGSTOP,但根据man 3 tcsetattr,它会生成SIGTSTP。但是,在这两种情况下,SIGCONT都用于恢复已停止的进程。

Ctrl-Z不只是生成的原因是什么SIGSTOP?是否存在程序以SIGTSTP不同方式处理的情况SIGSTOP

Ste*_*itt 10

和 KILL 一样,STOP 不能被捕获、阻止或忽略:它总是停止接收进程。另一方面,可以忽略或以不同方式处理 TSTP;例如,shell 和 Emacs 设置 TSTP 处理程序来处理CtrlZ自己。shell 中的这种行为可确保按下CtrlZ始终是安全的,并且不会让您陷入进程已停止且无法恢复的终端。

  • 任何可以发送信号的东西都可以发送任何信号。就键盘快捷键而言,请参阅[此答案](https://superuser.com/a/343611/414739),了解可以使用标准 Unix 风格线路规则发送的信号的详细信息。 (3认同)