Bashでジョブの一時停止(Ctrl-Z)をサポートするターミナルマルチプレクサ(screen、tmux、zellij)はありますか?

Bashでジョブの一時停止(Ctrl-Z)をサポートするターミナルマルチプレクサ(screen、tmux、zellij)はありますか?

私が知っている限り、ターミナルマルチプレクサでCtrl-Zを押すか、バックグラウンドで実行しようとすると、何も起こらないか、競合が発生します。

ターミナルマルチプレクサは、一般に、自己休止および再開メカニズムがあるという点で、ジョブ制御を「代替」することを知っている。しかし、どういうわけかこれをシェルジョブコントロールベースのワークフローに統合できるかどうか疑問に思います。

答え:

  • 画面が一時停止し、「Ca z」と表示されます。
  • Tmuxは「Cb Cz」で一時停止されます。
  • Zellijは「Co d」を使用して一時停止しますが、以前とは異なり、プロセスをシェルのジョブ制御に入れません。

答え1

ウィンドウ内でタスクを一時停止しますかscreen

  • Ctrl z通常どおり画面ウィンドウ内で使用してください。しかし、一時停止はありませんscreen

一時停止しますかscreen

  • Ctrl azすべてのウィンドウ画面内で使用してください。ただし、これによりscreenアプリケーションのユーザー側の部分が一時停止されますが、配信は一時停止されませんscreen。これはscreen、設計上、ユーザー側の部分が切り離されCtrl ad、管理されたプロセスが実行され続けるためです。

答え2

マルチプレクサ

Tmuxは「Cb Cz」で一時停止されます。

...これはprefix Ctrl+ですz(デフォルトのプレフィックスはCtrl+ですb)。

Ctrl+単独でクライアントを一時停止するように指示できますz。以下はtmux内のシェルのコマンドです。

tmux bind-key -T root C-z suspend-client

Ctrlただし、これはtmux内で+を使用してプロセスを一時停止する機能を失いますz。今prefix Ctrl+z送信し^Zて"内部" ttyに処理することが賢明です。

tmux bind-key -T prefix C-z send-keys C-z

このようにして、tmuxのprefix Ctrl+zと+の基本機能を置き換えます。Ctrlz


内部コマンドは.tmux.conf次のとおりです。

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

関連情報