슈퍼유저에서 일반 사용자로 변경하려고 하여 "exit"를 입력하면 작업이 중지되었다는 오류 메시지가 나타나고 루트로 로그아웃할 수 없습니다. 그래서 나는 직책을 나열했습니다.
#jobs
[1]+ yes | apt-get install build-essential
작업을 쉘 백그라운드에서 포그라운드로 옮겼습니다.
fg 1
이제 Ctrl+C를 누르면 간단히 종료할 수 있다고 생각했는데, Ctrl+C를 누를 때마다 "^c" 외에는 아무 일도 일어나지 않습니다. Ctrl+Z를 누르면 프롬프트로 돌아가지만 작업이 여전히 남아 있으므로 #이 붙어 있습니다.
답변1
^C
인터럽트 신호( SIGINT
)를 생성합니다. 프로그램은 이 신호를 차단하거나 완전히 무시하거나 치명적이지 않은 방식으로 "반응"할 수 있습니다.
예를 들어, 프로그램이 현재 수행 중인 작업을 모두 중지하되 완전히 종료하지는 않기를 원할 수 있습니다.
그래서 ^C
항상 작동하는 것은 아닙니다.
^Z
작업을 중지한 다음 kill %1
(여기서 %1은(는) 목록의 숫자 jobs
) 종료 신호( )를 보내면 SIGTERM
문제가 해결됩니다.