키보드 단축키가있는 SIGTERM SIGTERM하거나 SIGKILL현재 프로세스 로 키보드

터미널 내부에서 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 신호를 보냅니다.

두 가지 점에서 당신의 지식이 잘못되었습니다 :

  1. 신호는 포 그라운드 프로세스 그룹으로 전송됩니다 .
  2. 당시에 구성되는 특수 문자 인 경우 에만 CTRL+ C입니다. (이것은 대부분의 최신 시스템에서 기본값이지만 역사적으로 DEL성격이나 다른 것일 수 있습니다.)

SIGTERM 또는 SIGKILL을 현재 프로세스로 보내기위한 키보드 단축키를 설정하는 방법이 있습니까?

아닙니다. 회선 규칙은 어떤 신호를 전송할지 제어하고 해당 신호는 고정 배선됩니다. 그들은 (표준 유닉스에)있다 SIGHUP, SIGINT, SIGTTOU, SIGTTIN, SIGQUIT,와 SIGTSTP. 라인 규율에 의해 생성 된 다른 것은 없습니다.


답변

tty에 사용 가능한 신호 세트는 SIGINT( Ctrl+ C), SIGTSTP[ Ctrl+ Z) 및 SIGQUIT( Ctrl+ \)입니다. 다른 문자를 할당 할 수 있지만 유일하게 사용 가능한 신호입니다. 목적에 따라 Ctrl+ 를 사용 하여을 \보낼 수 SIGQUIT있지만 오류처럼 작동하고 기본적으로 코어 덤프가 발생합니다. stty명령을 사용 하여 설정을보고 변경할 수 있습니다 .


답변