프로세스를 일시 중단 및 재개하는 방법


143

bash 터미널에서 Control+ Z를 눌러 실행중인 프로세스를 일시 중단 할 수 있습니다 ... 그런 다음 입력 fg하여 프로세스를 다시 시작할 수 있습니다 .

PID 만있는 경우 프로세스를 일시 중단 할 수 있습니까? 그렇다면 어떤 명령을 사용해야합니까?

나는 다음과 같은 것을 찾고있다 :

suspend-process $PID_OF_PROCESS

그런 다음

resume-process $PID_OF_PROCESS

답변:


172

kill프로세스를 중지하는 데 사용할 수 있습니다 .

프로세스에 대한 '정지'중지의 경우 (정상 사용시 선호) SIGTSTP를 전송하십시오.

kill -TSTP [pid]

'정지 된'정류장의 경우 SIGSTOP을 보내십시오.

kill -STOP [pid]

PID에 의해 중지하려는 프로세스가 쉘의 작업 테이블에 있으면 프로세스가 fg다시 종료 될 때까지 프로세스가 계속 표시되지만 종료 될 수 있습니다 .

프로세스 실행을 재개하려면 SIGCONT를 전송하십시오.

kill -CONT [pid]

25
다른 이유가없는 한, 일부 응용 프로그램은 SIGTSTP를 특수하게 처리하므로 SIGSTOP보다 SIGTSTP를 선호합니다. 예를 들어, scp에 진행률 표시 줄이 표시되면 SIGTSTP는 일시 중단하기 전에 터미널 모드를 정리하지만 SIGSTOP을 보내면 그렇게 할 기회가 없습니다.
ephemient

3
@ephemient SIGTSTP를 사용해 보았습니다. 터미널 정리에 대해 말한 것을 보았습니다. SIGTSTP의 설명 주셔서 감사합니다, 새로운 것을 :) 배울 좋은 alawys
스티브 Burdine

2
또한 % 기호와 작업 번호 (을 실행하여 찾을 수있는 번호)를 사용하여 [pid] 값을 참조 할 수 있습니다 jobs. kill -TSTP %1
Karoh


43

해당 kill명령을 사용해야합니다 .

더 자세한 말해서 - 당신은 지정해야 올바른 신호를 , 즉

$ kill -TSTP $PID_OF_PROCESS

프로세스 중단 및

$ kill -CONT $PID_OF_PROCESS

다시 시작해 주셔서 감사합니다. 여기에 문서화되어 있습니다 .


역사상 어떤 사고로 인해이 답변이 더 적은 표를 얻었는지 궁금합니다. 대답은 거의 동일하며 이것이 처음에 왔습니다 ....
Wildcard

7
@Wildcard, 대답을 만들 때 조금 서두르므로 기본적으로 첫 번째 부분 kill -TSTP(즉, 일시 중단하는 방법)이 포함되었습니다. 1/2 년 후, 즉 2011 년, 나는 내 대답을 다시보고 불완전 성을 발견했다. 따라서 편집하고 kill -CONT파트 도 추가했습니다 . 이것은 Steve의 답변과 비교하여 투표의 차이점을 설명해야합니다.
maxschlepzig
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.