답변:
기술적으로 foo이미 백그라운드에서 실행됩니다. 두 번째 터미널 세션을 시작할 수 있으며 foo다른 작업 을 수행 하는 동안 첫 번째 터미널 세션이 계속 실행 됩니다.
X에서 이것은 단순히 두 번째 터미널 응용 프로그램을 시작하거나 선택한 터미널 에뮬레이터에 이러한 기능이있는 경우 다른 탭을 여는 것과 관련이 있습니다.
콘솔에서 계획하지 않은 경우 다른 가상 터미널로 전환하고 다시 로그인해야합니다.
같은 터미널 멀티플렉서를 사용 screen하거나 tmux그 안에 다른 세션을 시작할 수 있습니다. 예를 들어, 화면에서 Ctrl+ A바로 뒤에 Ctrl+가 사용 C됩니다. 이들 사이를 전환하려면 Ca Cn 및 Ca Cp를 사용하여 터미널 세션간에 앞뒤로 이동하십시오.
foo 자체 (내가 야생에서 희귀 한 것과 존재하지 않는 것 사이에 특정 검사가없는 경우)는 최상위 창에서 실행 중인지 또는 출력을 표시하는 것이 있는지 상관하지 않습니다.
foo이미 백그라운드에서 실행 "으로 시작합니다 ... 기술적으로.
foo했으므로 지금 어떻게해야합니까?" 이 대답 (또는 다른 답변을) 느끼는 질문에 대답 유용하지 않은 경우, 나는 당신의 투표권을 행사하는 것이 좋습니다 것 뿐만 아니라 당신이 올바른 각도를 느끼는 것을에서 질문에 대답 자신의 대답을 떠나보다는 질문에 남은 답변 중 하나 에 대해 논쟁 . 예를 들어 l0b0의 답변이 더 낫다고 생각하지만 내 답변은 OP가 원하는 것을 대략적 으로 수행 할 수있는 방법을 제공합니다 .
포 그라운드에서 백그라운드로 애플리케이션을 전송하려면 터미널과 쉘 모두의 협력이 필요합니다. 쉘은 포 그라운드 프로세스 그룹을 설정해야하기 때문에 터미널은 혼자서 할 수 없습니다. 터미널은 키 누름을 처리해야하므로 쉘은 단독으로 수행 할 수 없습니다 (쉘은 포 그라운드에 없으므로 키 누름을 수신 할 수 없음).
빠른 연속으로 +를 두 번 누를 수 있는 zsh 구성 이 있습니다 . 첫 번째 프레스는 프로세스를 일시 중단하고 두 번째 프레스는 백그라운드에서 프로세스를 다시 시작합니다. 나는 그것을 bash로 이식하는 방법을 모른다.CtrlZ
키 입력을 주입 할 수있는 터미널 에뮬레이터에서 실행중인 경우 주입 할 수 있습니다 ^Zbg^M( ^제어 문자에 대한 표기법 사용 ). 예를 들어, X11 터미널 에뮬레이터 xdotool --window 1234 Ctrl_L+Z b g Return에서 1234는 터미널 에뮬레이터의 창 ID입니다. Screen을 사용하면 screen -S foo -p 12 -X stuff $'\032bg\r'where foo는 화면 세션의 이름이며 12창 ID입니다.
타이핑이 충분히 빠르지 않으면 kill -s SIGSTOP 1023 && kill -s SIGCONT 1023다른 쉘에서 실행 하여 1023을 대상 PID로 가정하십시오.
면책 조항 : Ruslan이 알고 있듯이 해당 시퀀스는 실제로 작업을 다시 시작하므로 신속하게 인식 bash하지 못합니다.