정지하지 않고 백그라운드에 작업 넣기

정지하지 않고 백그라운드에 작업 넣기

이렇게 일을 시작한다고 가정해 보세요

foo

그런 다음 이를 배경에 두고 싶을 것입니다. Ctrl+를 입력 Z하면 bg트릭이 수행되지만 + 와 foo사이에서 멈춥니다 . foo를 먼저 동결하지 않고 백그라운드에 어떻게 넣을 수 있나요?CtrlZbg

답변1

&명령( ) 뒤에 기호를 추가하면 foo &즉시 배경이 됩니다. 하지만 난 방법이 없다고 믿어기준일부 배경 콘텐츠에 사용되는 터미널/셸 구성일단 전경입니다.

답변2

기술적으로 foo이미 백그라운드에서 실행 중입니다. 두 번째 터미널 세션을 시작할 수 있으며 다른 작업을 수행하는 동안 첫 번째 터미널 세션이 foo계속 실행됩니다.

X에서는 단순히 두 번째 터미널 응용 프로그램을 시작하거나 선택한 터미널 에뮬레이터에 해당 기능이 있는 경우 다른 탭을 여는 작업이 포함됩니다.

콘솔에서 계획이 없으면 다른 가상 터미널로 전환하고 다시 로그인해야 합니다.

screen또는 같은 터미널 멀티플렉서를 사용하는 경우 tmux다른 세션을 시작할 수 있습니다. 예를 들어, 화면에서는 Ctrl+ A다음에 + 를 사용하여 Ctrl수행 됩니다 C. 이들 사이를 전환하려면 Ca Cn 및 Ca Cp를 사용하여 터미널 세션 사이를 앞뒤로 전환하십시오.

답변3

포그라운드에서 백그라운드로 애플리케이션을 보내려면 터미널과 셸의 협력이 필요합니다. 터미널은 쉘이 포그라운드 프로세스 그룹을 설정해야 하기 때문에 단독으로 수행할 수 없습니다. 터미널이 키 누르기를 처리해야 하기 때문에 쉘은 이 작업을 단독으로 수행할 수 없습니다(쉘은 포그라운드에 있지 않으므로 키 누르기를 수신할 수 없습니다).

나는zsh 구성+를 빠르게 연속해서 두 번 누를 수 있습니다 Ctrl. Z처음 누르면 프로세스가 일시 중지되고 두 번째 누르면 백그라운드에서 다시 시작됩니다. 이것을 bash로 포팅하는 방법을 모르겠습니다.

키 입력 주입을 허용하는 터미널 에뮬레이터에서 실행 중인 경우 주입할 수 있습니다 ^Zbg^M( ^제어 문자 기호 사용). 예를 들어 X11 터미널 에뮬레이터의 경우 xdotool --window 1234 Ctrl_L+Z b g Return1234가 터미널 에뮬레이터의 창 ID인 경우 실행합니다. Screen의 경우, 여기서 screen -S foo -p 12 -X stuff $'\032bg\r'foo스크린 세션의 이름이고 12는 창 ID입니다.

답변4

이 상황에 대해 입력 속도가 충분히 빠르지 않으면 kill -s SIGSTOP 1023 && kill -s SIGCONT 10231023을 대상 PID로 가정하고 다른 셸에서 실행하세요.

면책조항:루슬란bash이 시퀀스는 실제로 사용자가 눈치채지 못할 정도로 작업을 너무 빨리 다시 시작한다는 것을 알 수 있습니다 .

관련 정보