하나의 터미널을 사용하여 여러 대화형 작업을 중지하지 않고 처리하는 방법은 무엇입니까?

하나의 터미널을 사용하여 여러 대화형 작업을 중지하지 않고 처리하는 방법은 무엇입니까?

동시에 작동하고 유용한 출력 방식을 제공해야 하는 client.sh두 개의 쉘 스크립트가 있습니다 . 그리고 하나의 터미널만 사용할 수 있습니다. 따라서 무슨 일이 일어나고 있는지 확인하기 위해 둘 사이를 전환해야 하지만 중지해서는 안 됩니다( + ). 나는 무엇을 해야할지 모르겠습니다. 내가 달릴 때server.shwatch
CtrlZ

./server.sh &

그런 다음 터미널에 입력하세요 Enter(시작하기 전).클라이언트.sh) 그러나 그것은 보여줍니다

[1]+ Stopped                   ./server.sh

터미널에서 작업을 중지하지 않고 출력(내부 상태)을 보기 위해 전환하는 편리한 방법이 있습니까?

답변1

사용 screen:

$ screen -S my-job

그러면 "my-job"이라는 새 세션이 시작되어 screen연결됩니다.

$ ./server.sh

server.sh그러면 세션에 연결된 첫 번째(기본) 터미널에서 스크립트가 시작됩니다 screen. 이제 Ctrl-를 누른 A다음 Ctrl-를 누르십시오 C. 이것은 것이다새 터미널을 만들고 전환하십시오. 이제 다음을 실행할 수 있습니다.

$ ./client.sh

그리고 그 출력을 관찰해보세요. 앞뒤로 전환하려면 Ctrl-를 누른 다음 -를 A다시 누릅니다 .CtrlA

screen프로그램이 실행되는 동안 연결을 끊으 려면 - 를 누른 Ctrl다음Ad에칭. 다시 연결하고 출력을 다시 보려면 다음을 사용하십시오.

$ screen -x my-job

다음을 수행하여 추가 스크립트의 출력을 동시에 볼 수도 있습니다.

  • Ctrl-를 누른 A다음 s다음을 누릅니다.에스의견을 나누어 보세요.
  • Ctrl-를 누른 A다음 눌러서 Tab아래쪽 구분선으로 이동합니다.
  • Ctrl- 그런 다음 활성 터미널 목록을 열고 터미널 1을 선택합니다(터미널 0은 기본적으로 상단 분할에 연결됩니다) A."

답변2

당신이 찾고 있는 것은 Bash의 작업 제어입니다. man bash"JOB Control"을 검색 하면 이에 대한 모든 내용을 읽을 수 있습니다 ( /^JOB CONTROLbash 매뉴얼 페이지에 입력).

그래도 command &명령은 백그라운드에서 실행되어야 합니다. bash 명령을 사용하여 이를 확인할 수 있습니다 jobs. 그러면 모든 백그라운드 작업, 작업 번호 및 상태가 나열됩니다.

bg n작업 번호 n으로 중지된 작업을 재개하려면 또는를 사용합니다 %n &(예: bg 5는 작업 번호 5를 재개합니다).

배경에서 전경으로 작업을 다시 가져오려면 fg n또는 를 사용하세요 .%n

도움이 되었기를 바랍니다.

답변3

여러 터미널을 동시에 실행하려면 screen(1) 또는 tmux(1)과 같은 것을 사용하십시오. 로그아웃하고 다른 곳에서 검색할 수도 있습니다.

그놈 터미널 등에서 탭을 사용하세요.

bash(1)에서 작업 제어를 사용하여(정보 파일의 관련 섹션을 읽으십시오) 작업을 중지/백그라운드/포그라운드로 수행하십시오.

관련 정보