ctrl-c를 여러 번 누르면 실행중인 프로그램이 더 빨리 종료됩니까? 후에 종료하고 싶지만 Ctrl+ C를

나는 종종 큰 파일을 읽은 다음 잠시 후에 종료하고 싶지만
Ctrl+ C를 누르면 프로그램이 멈출 때 까지 지연이 발생 합니다. Ctrl+ C키를 여러 번 눌러 지연 시간을 줄일 수 있습니까? 아니면 내가 키 누르기를 낭비하고 있습니까?



답변

첫 번째 후에 Ctrl-C프로그램은 SIGINTtmp 파일 삭제, 소켓 닫기 등 을 받고 일반적으로 정리를 시작합니다. 당신이 공격하면 Ctrl-C그 일이 벌어지고있는 동안 다시는 할 수 있습니다 (즉, 추가 신호가 깨끗한 업 인터럽트 루틴 일이 발생할 수도 뒤에 혼란을 떠나, 대신 혼자되는 작용 수를). 일반적으로 그렇지는 않지만 더 일반적으로 추가 신호는 이후에 전송됩니다.시스템과 작업자의 상호 작용에 내재 된 지연으로 인해 프로세스가 완료되었습니다. 즉, 다른 프로세스 (종종 쉘은 아니지만 항상)에 의해 신호가 수신됩니다. 해당 수신자가이 신호를 제대로 처리하지 않으면 (일반적으로 쉘이하는 것처럼-Jenny D의 답변 참조) 그러한 조치의 결과에 불쾌하게 놀랄 수 있습니다.


답변

당신은 그들을 낭비하고 있습니다. 서버가 화면 출력을 마치면 여러 개의 서버가 수신됩니다 Ctrl-C. 첫 번째 프로세스는 프로세스를 종료하는 데 사용되며 다음 프로세스는 쉘에서 종료됩니다.

[user@server]$ ^C
[user@server]$ ^C
[user@server]$ ^C
[user@server]$ ^C
[user@server]$ ^C
[user@server]$


답변

짧은 대답 : 프로세스가 이에 반응하는 경우.

대답 : ctrl+를 c누르면 커널이 프로세스에 신호를 보냅니다. 다음 명령으로 어떤 신호를 결정할 수 있습니다.

user@host:~# stty -a | grep -i "\^C"
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;

의 매뉴얼 페이지를 참조하십시오 stty:

   intr CHAR
          CHAR will send an interrupt signal

이는 신호의 INT, 또한 공정이 이것에 반응 할 수있는 처리기의 신호를 갖는 경우 2. 번호라고도. 대부분의 프로세스는 일부 정리 작업을 수행하여 성공적으로 종료됩니다.


답변

네가 옳아. 키 누름이 낭비되고 있습니다. 를 누르면 Crtl+C감지 될 때 지워야하는 자원이 있으므로 시간이 걸립니다. 누르기 Ctrl+C가 필요한 곳을 알 수있는 한 가지 사례 는 Yum 업데이트 프로세스를 취소하려는 경우이며, Yum에서는 Ctrl+C두 번 눌러 취소를 확인해야합니다.


답변

Ctrl-C일반적인 경우에는 하나만 필요 하지만 필요한 경우도 있습니다. 예를 들어, 파이썬 Ctrl-C은 새 스레드가 생성 될 때 트래핑 하므로 많은 스레드를 시작하는 중에 문제가 발생하면 여러 번 다시 보내서 python부모 프로세스로 전달되지 않아야합니다. 잡혔다.


답변

나는 항상 언론에이 Ctrlc여러 번. 나는 첫 번째 언론에서 반응을 보인 적이 없으며 시스템이 실제로 Ctrlc전송되고 있음을 알 때까지 여러 번 사용해야합니다 . 실제로 대부분을 그리워하거나 잃어버린 것처럼 보입니다.


답변