从另一个终端终止 bash/terminal/tty 窗口/会话

从另一个终端终止 bash/terminal/tty 窗口/会话

Linux ThinkPad-E480 5.8.0-50-generic #56~20.04.1-Ubuntu SMP Mon Apr 12 21:46:35 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

我刚刚遇到了以下情况:suspend命令什么都不做,只是阻止输入。我试过了,,,ctrl-c但没有帮助。ctrl-dctrl-z

PS 我之所以这样称呼它,tty是因为每个 bash 窗口都通过命令返回另一个值tty证明

答案1

使用suspend使 shell 向自身发送 SIGSTOP。要恢复已停止的进程,您必须发送 SIGCONT信号。所有其他信号(甚至 SIGKILL)都会排队,并且只有在使用 SIGCONT 恢复进程后才会被处理。

如果您嵌套了多个 shell(例如,如果您正在运行susudo -s),则控制权将返回到父 shell 并且您可以使用 恢复子 shell fg

但是当没有父 shell 来实现作业控制时,你需要手动发送 SIGCONT:

kill -CONT <pid>
pkill -CONT bash

每个图形终端、每个 ssh 连接或每个 tmux 窗格确实都有自己的 tty。尽管它们分配了名称中带有“pts”的“伪终端”,但从所有意图和目的来看,它们都是 tty 设备。

相关内容