是否有终端多路复用器(screen、tmux、zellij)支持 Bash 中的作业暂停 (Ctrl-Z)?

是否有终端多路复用器(screen、tmux、zellij)支持 Bash 中的作业暂停 (Ctrl-Z)?

据我所知,在任何终端多路复用器上按 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+zCtrl+的默认功能。z


里面的.tmux.conf命令是:

bind-key -T root C-z suspend-client
bind-key -T prefix C-z send-keys C-z

相关内容