터미널 내부에서 Ctrl+ C키보드 단축키는 SIGINT
현재 전경 프로세스로 신호를 보냅니다 . 전송 SIGTERM
하거나 SIGKILL
현재 프로세스 로 키보드 단축키를 설정하는 방법이 있습니까? 시간이 좀 절약 될 것 같아요.
나는 뛰고있어 Ubuntu 11.04
답변
stty는이를 제어 할 책임이 있습니다. 이미 하나의 설정이있을 수 있습니다. 다음을 수행하여 확인할 수 있습니다.
$ stty -e
speed 38400 baud; 53 rows; 225 columns;
lflags: icanon isig iexten echo echoe echok echoke -echonl echoctl
-echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
-extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff -ixany imaxbel -iutf8
-ignbrk brkint -inpck ignpar -parmrk
oflags: opost onlcr -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd -hupcl -clocal -cstopb -crtscts
-dsrflow -dtrflow -mdmbuf
discard dsusp eof eol eol2 erase intr kill lnext
^O ^Y ^D <undef> <undef> ^? ^C ^U ^V
min quit reprint start status stop susp time werase
1 ^\ ^R ^Q ^@ ^S ^Z 0 ^W
마지막 몇 줄은 익숙해 보일 것입니다. ^ C = intr은 질문에서 언급 한 줄입니다. 다음을 통해 더 설정하는 방법을 읽을 수 있습니다.
$ man stty
답변
터미널 내부에서 Ctrl+ C키보드 단축키는 현재 전경 프로세스로 SIGINT 신호를 보냅니다.
두 가지 점에서 당신의 지식이 잘못되었습니다 :
- 신호는 포 그라운드 프로세스 그룹으로 전송됩니다 .
- 당시에 구성되는 특수 문자 인 경우 에만 CTRL+ C입니다. (이것은 대부분의 최신 시스템에서 기본값이지만 역사적으로
DEL
성격이나 다른 것일 수 있습니다.)
SIGTERM 또는 SIGKILL을 현재 프로세스로 보내기위한 키보드 단축키를 설정하는 방법이 있습니까?
아닙니다. 회선 규칙은 어떤 신호를 전송할지 제어하고 해당 신호는 고정 배선됩니다. 그들은 (표준 유닉스에)있다 SIGHUP
, SIGINT
, SIGTTOU
, SIGTTIN
, SIGQUIT
,와 SIGTSTP
. 라인 규율에 의해 생성 된 다른 것은 없습니다.
답변
tty에 사용 가능한 신호 세트는 SIGINT
( Ctrl+ C), SIGTSTP
[ Ctrl+ Z) 및 SIGQUIT
( Ctrl+ \)입니다. 다른 문자를 할당 할 수 있지만 유일하게 사용 가능한 신호입니다. 목적에 따라 Ctrl+ 를 사용 하여을 \보낼 수 SIGQUIT
있지만 오류처럼 작동하고 기본적으로 코어 덤프가 발생합니다. stty
명령을 사용 하여 설정을보고 변경할 수 있습니다 .