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

관련 정보