반응형
Node.js에서 CTRL + C 감지
이 코드는 다른 SO 질문에서 얻었지만 노드가 tty 대신 process.stdin.setRawMode를 사용하도록 불평하여 변경했습니다.
전에:
var tty = require("tty");
process.openStdin().on("keypress", function(chunk, key) {
if(key && key.name === "c" && key.ctrl) {
console.log("bye bye");
process.exit();
}
});
tty.setRawMode(true);
후:
process.stdin.setRawMode(true);
process.stdin.on("keypress", function(chunk, key) {
if(key && key.name === "c" && key.ctrl) {
console.log("bye bye");
process.exit();
}
});
어쨌든 첫 번째는에 대해 불평 tty
하고 오류를 던지고 두 번째는 아무것도하지 않고 Node의 네이티브 CTRL+ C핸들러를 비활성화 하는 완전히 반응하지 않는 노드 프로세스를 만드는 것이므로 노드를 종료하지도 않습니다. 그것을 누르십시오. Windows 에서 Ctrl+ C를 어떻게 성공적으로 처리 할 수 있습니까?
인터럽트 신호를 잡으려는 SIGINT
경우 키보드에서 읽을 필요가 없습니다. 의 process
객체 nodejs
는 인터럽트 이벤트 를 노출합니다.
process.on('SIGINT', function() {
console.log("Caught interrupt signal");
if (i_should_exit)
process.exit();
});
편집 : 해결 방법 없이는 Windows에서 작동하지 않습니다. 여기를 보아라
기능이 필요한 사람들을 위해 죽음을 찾았 습니다 (npm 결절, 하!) .
저자는 또한 Windows에서 작동 한다고 주장 합니다.
POSIX 호환 시스템에서만 테스트되었습니다. 여기에 Windows 신호에 대한 좋은 토론이 있습니다. 분명히 이것은 수정 / 매핑되었습니다.
CTRL+ Cwin32에서 작동 하는지 확인할 수 있습니다 (예, 놀랐습니다).
참고 URL : https://stackoverflow.com/questions/20165605/detecting-ctrlc-in-node-js
반응형
'developer tip' 카테고리의 다른 글
pylab으로 원격으로 Figure를 저장하는 방법은 무엇입니까? (0) | 2020.10.29 |
---|---|
Xcode4에서 * goto line * 명령은 어디에 있습니까? (0) | 2020.10.29 |
서버 소켓에서 클라이언트 연결 끊김을 즉시 감지 (0) | 2020.10.29 |
MATLAB 플로팅 그림의 창 제목을 변경하는 방법은 무엇입니까? (0) | 2020.10.29 |
지도에 대한 나만의 비교기를 어떻게 만들 수 있습니까? (0) | 2020.10.29 |