暂停客户端后恢复 tmux 客户端

暂停客户端后恢复 tmux 客户端

在我的绑定中,prefix + CTRL-Z 会触发 tmux 中的“suspend-client”命令。我曾多次错误地触发此命令,结果留下了一个没有提示的“僵尸终端”,我不知道如何“唤醒”它。

根据 tmux 手册页:

suspend-client [-t target-client]
 (alias: suspendc)
 Suspend a client by sending SIGTSTP (tty stop).

是否有“回去的路”或者我只需要关闭终端?

它是干什么用的?

答案1

查找 tmux 客户端 pidps并使用kill -CONT <pid>

是的,应该实现 resume-client 以便与 tmux -C 一起使用。

答案2

SIGTSTP 是正典地暂停前台进程的信号,与 几乎相同ctrl+z。明显的好处是,这会停止其对资源的使用以及可能产生的任何其他影响;它会冻结进程的状态并将控制权移交给父进程。不太明显的好处是 TTY 组件:您可以立即重新获得对 stdin/out/err 的控制权,并且当您恢复任务时,您可以bg像运行 一样使用 保留对执行和 I/O 的控制,或者使用( )prog &释放它。我知道 SIGCONT 将恢复该过程,但我不知道它是否或如何在 FG/BG 之间做出决定。fgprog

现在,SIGTSTP 和 SIGSTOP 之间的区别在于 SIGSTOP 是不可协商的,而 SIGTSTP 可以被“捕获”(处理/捕获/等)这是一个简单的例子以下是一些注意事项. 尝试一下man 7 signal——您可能会发现另一种碰撞,如果没有办法利用它们来为您带来好处。

有一些“外部”命令可以执行相同的角色 - 您可以使用stty ixon/来完成此操作ixoff,但我不是专家,而且我没有对信号做过太多事情。也许在您开始测试时保留一份备忘单,因为似乎很容易锁定您的环境。

编辑 - 从您的帖子中看不完全清楚 - 禁用默认的 Tmux 绑定是否可以解决您的问题?

相关内容