"suspend"명령을 실행 한 후 터미널 기능을 재개하는 방법은 무엇입니까?


8

suspend터미널에 입력 하여 실행을 일시 중지했습니다.

정상적인 터미널 기능으로 돌아가려면 어떻게합니까? 나는 시도하지했습니다 Ctrl+ C, Ctrl+ D, Ctrl+ Q( 여기 제안 ), 그리고 Ctrl+ Z이 작품의, 그러나 아무도를. 물론 터미널을 닫고 새 터미널을 열 수는 있지만 터미널 기능을 "재개"할 방법이 없습니까?

기본 (bash) 셸을 사용하여 Ubuntu GNOME 16.04를 실행 중입니다.


내가 여기서 묻는 것이 유감이지만,이 명령의 목적은 무엇입니까?
pa4080

1
스크립트 실행을 중지하고 나중에 계속 진행하려면;)
Rinzwind

답변:


10

귀하의 링크에서 :

SIGCONT 신호를 수신 할 때까지

그래서 그것은 kill -SIGCONT {pid}

  • killall -CONT bash 다시 시작합니다.
  • kill -18 {pid} 동일합니다.
  • 그렇습니다 kill -s CONT {pid}

목록 에 따르면 control-z 여야하지만 control-z를 사용하여 프로세스를 중지해야합니다.

18 - SIGCONT - Resume process, ctrl-Z (2nd)
19 - SIGSTOP - Pause the process / free command line, ctrl-Z (1st)

터미널에서 실행되는 쉘 세션의 {pid}가 필요합니다


또한이 작업 제어 명령 :

fg, bg

The fg command switches a job running in the background into the foreground. 
The bg command restarts a suspended job, and runs it in the background. 
If no job number is specified, then the fg or bg command acts 
upon the currently running job.

또한 Ctrl + Q 여야하지만 어떤 이유로 작동하지 않습니다. 셸이 일시 중단되었으므로 일시 중단 된 세션에서 Ctrl + Q (SIGCONT)를받을 수 없다고 가정합니다. 말한 것처럼 사용 kill -SIGCONT PID하지만 많은 터미널을 열었을 때 일시 중단 된 세션의 PID를 얻는 간단한 방법을 찾을 수 없으면 작동합니다 .
terdon

작동하지 않습니다. 나는 ps aux를 사용했다 | 터미널의 pid를 얻는 grep term은 SIGCONT의 3 가지 변형을 모두 시도했지만 아무것도 작동하지 않았습니다. 내가 pid를 죽였을 때 터미널이 닫혔으므로 올바른 pid가있었습니다.
Cerberus

@Cerberus 터미널 자체가 아닌 터미널에서 실행되는 쉘 세션의 PID를 원합니다. 열린 터미널이 하나만 있으면를 쉽게 찾을 수 있습니다 pgrep bash. 그렇지 않은 pstree -p경우을 사용하고 거기에서 터미널의 PID를 찾은 다음 해당 자식의 PID를 확인하십시오.이 중 하나는 bash 세션이어야합니다.
terdon

적어도 시나리오에서 두 개의 터미널 세션이 필요합니다. 하나는 일시 중단되고 다른 하나는 SIGCONT를 보낼 세션입니다.
Cerberus

1
SIGCONT는 일반적으로 무시되므로 왜 화를 내지 killall -CONT bash않습니까? :-)
Jonas Schäfer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.