Ctrl+는 Z작업을 중지하고 Ctrl+는 C작업을 종료합니다.
왜 그런 겁니까? 다른 방법이 더 의미가 있지 않나요?
z@z-lap:~$ sleep 100&
[1] 4458
z@z-lap:~$ sleep 200&
[2] 4459
z@z-lap:~$ jobs
[1]- Running sleep 100 &
[2]+ Running sleep 200 &
z@z-lap:~$ fg %1
sleep 100
^Z
[1]+ Stopped sleep 100
z@z-lap:~$ jobs
[1]+ Stopped sleep 100
[2]- Running sleep 200 &
z@z-lap:~$ fg %1
sleep 100
^C
z@z-lap:~$ jobs
[2]+ Running sleep 200 &
답변1
Job Control 표기법에 대해 헷갈리실 수도 있을 것 같아요. "중지됨"은 작업이 여전히 존재하지만 모든 것을 처리할 수 있는 능력이 보존되었음을 의미합니다(CPU에서 아무것도 처리할 시간이 없음). 이는 올바른 기술 용어는 아니지만 실제로는 "일시 중지" 또는 "일시 중지" 상태입니다.
CtrlC작업이 "중지"되지 않고 취소되거나 종료됩니다. 기술적으로는 프로그램에 인터럽트 신호를 보내 현재 수행 중인 작업을 중단하고 즉시 종료하도록 지시합니다. 일부 프로그램은 이 신호를 듣고 종료되기 전에 스스로 긴급 정리 작업을 수행합니다. 다른 것들은 신호에 응답하지 않고 이후에 중단됩니다.
CtrlZ반면에 작업을 "중지"합니다. 이는 신호로도 수행되지만 이번에는 "인터럽트" 신호 대신 "중지" 신호입니다. 이렇게 하면 작업이 효과적으로 종료되고 제어권이 셸로 반환되지만 실제로 작업이 종료되지는 않습니다. 이러한 작업을 계속 실행하려면
bg
명령을 실행하여 마지막으로 중지된 작업을 백그라운드로 보낼 수 있습니다. 그런 다음&
처음에 실행한 것처럼 백그라운드 작업으로 계속 실행됩니다 . 또한fg
포그라운드에서 마지막으로 사용을 중지한 작업을 재개할 수도 있습니다(중단된 부분부터 계속 진행하고 다시 상호 작용할 수 있도록 허용).