프로세스를 일시 중지하고 Ubuntu의 별도 화면에서 다시 전경으로 가져옵니다.

프로세스를 일시 중지하고 Ubuntu의 별도 화면에서 다시 전경으로 가져옵니다.

실행으로 인해 휴면 상태가 된 프로세스는 실행 중인 작업을 나열하고 작업 ID를 할당하여 다시 포그라운드로 가져올 수 있습니다 ^Z. 그런데 채용정보를 개별적으로 나열하려고 하면$ jobsfg %id화면동일한 터미널에서 결과가 없습니다. 이 목표를 달성하는 방법은 무엇입니까?

내가 원하는 것은 동일한 터미널의 별도 화면에서 동일한 프로세스를 종료하지 않고 시작하는 것입니다.

답변1

당신은 할 수 없습니다. 셸 작업(포그라운드 및 백그라운드 프로세스) 처리는 각 개별 셸 인스턴스에서 수행됩니다. 하나의 대화형 셸에서 다른 대화형 셸로 작업을 마이그레이션할 수 없습니다.이내에그것은 마치 screen.

터미널은 실제로 이것과 아무 관련이 없습니다. 쉘만 실행합니다.

tmux할 수 있는 일은 터미널 멀티플렉서(예: 또는 )를 사용하여 전체 셸 세션을 마이그레이션하는 것입니다 screen. 한 터미널 에서 세션을 분리 screen하거나 세션을 설정 tmux한 후 동일한 컴퓨터의 다른 터미널에 다시 연결하면 터미널 중 하나의 쉘 세션을 다른 터미널로 이동할 수 있습니다.

tmux이는 먼저 시작한 tmux다음 세션 내에서 프로그램을 시작하여 수행됩니다 tmux. 프로그램이 실행되는 동안 prefixd(기본값 prefix은 )을 눌러 세션을 Ctrl+B분리 할 수 있습니다. tmux그런 다음 다른 터미널에서 명령을 실행하여 세션을 tmux attach재개하십시오 . tmux분리는 명령을 통해서도 수행할 수 있습니다 tmux detach.

screentmux시스템 설명서를 참조하세요 .

답변2

터미널은 프로세스(예: 셸)에 대한 뷰어입니다. 터미널 자체는 어떤 명령도 실행하지 않습니다. 이것이 셸의 목적입니다. 하지만 터미널이 없으면 셸이나 셸에서 실행되는 모든 프로그램과 상호 작용할 수 없습니다.

일반적으로 터미널 창을 닫으면 닫으라는 신호를 셸에 보내고, 그 결과 실행 중인 모든 프로세스가 종료됩니다.

에서 프로세스를 실행할 수 있습니다 screen. 그 기능은 쉘이 실행될 "가상 터미널"을 생성하는 것입니다. "실제" 터미널 창을 세션에 연결하고 제공된 screen가상 터미널을 제어할 수 있습니다. screen최종 효과는 완전히 정상적으로 느껴지지만 가상 화면에서 분리하고 셸을 실행 상태로 둘 수도 있다는 것입니다.

screen                     # Create a leader and a virtual terminal/screen running a shell
screen -ls                 # List sessions (attached/detached)
screen -r                  # Reattach to the single detached session
screen -r {identifier}     # Reattach to the named detached session
screen -md {command...}    # Make a new detached session running {command...}

마지막으로 Ctrl Ad현재 세션에서 벗어나 Ctrl A?대화형 명령 목록을 가져옵니다.

관련 정보