据我所知,在任何终端多路复用器上按 Ctrl-Z,或尝试在后台启动它们,都不会执行任何操作或崩溃。
我知道,从某种意义上说,终端多路复用器是作业控制的“替代品”,通常它们有自己的挂起和恢复机制。不过,我想知道是否可以以某种方式将它们集成到基于 shell 作业控制的工作流程中。
回答:
- 屏幕暂停并显示“Ca z”
- Tmux 以“Cb Cz”暂停
- Zellij 使用“Co d”暂停,但与之前的不同,它不会将进程置于 shell 的作业控制中。
答案1
您想暂停窗口内的作业吗screen
?
- Ctrl z只需在屏幕窗口内使用(像往常一样)。但这并没有暂停
screen
。
您想自行暂停吗screen
?
- Ctrl az在任何纱窗内使用。但请注意,虽然这会暂停应用
screen
程序面向用户的部分,但它不会暂停通过screen
.这是因为screen
设计为可以将其面向用户的部分与 分离Ctrl ad,并且托管进程继续运行。
答案2
多路复用器
Tmux 以“Cb Cz”暂停
…即prefix Ctrl+ z(默认前缀是Ctrl+ b)。
Ctrl您可以使用sole +告诉它暂停客户端z。这是 tmux 内 shell 的命令:
tmux bind-key -T root C-z suspend-client
Ctrl但是这样你将失去使用+暂停 tmux 内进程的能力z。现在明智的做法是 make prefix Ctrl+z只是发送^Z
并让“内部”tty 处理它:
tmux bind-key -T prefix C-z send-keys C-z
这样我们就交换了tmux 中prefix Ctrl+z和Ctrl+的默认功能。z
里面的.tmux.conf
命令是:
bind-key -T root C-z suspend-client
bind-key -T prefix C-z send-keys C-z