>  기사  >  운영 및 유지보수  >  리눅스에는 어떤 신호가 있습니까?

리눅스에는 어떤 신호가 있습니까?

青灯夜游
青灯夜游원래의
2023-03-30 14:15:083605검색

Linux 신호에는 다음이 포함됩니다. 1. SIGHUP, 프로세스를 즉시 종료한 다음 구성 파일을 다시 읽은 다음 다시 시작합니다. 2. 프로그램 중단 신호인 SIGINT, 포그라운드 프로세스를 종료하는 데 사용됩니다. 프로그램 종료 신호 4. SIGFPE, 치명적인 산술 연산 오류가 발생할 때 발생합니다. 5. SIGKILL, 프로그램 실행을 즉시 종료하는 데 사용됩니다. 6. SIGALRM, 클럭 타이밍 신호, 프로세스를 정상적으로 종료하는 신호; 8. SIGCONT 9. SIGSTOP 등.

리눅스에는 어떤 신호가 있습니까?

이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.

Linux의 신호란 무엇입니까?

프로세스 관리는 주로 프로세스를 닫고 다시 시작하는 것을 의미합니다. 일반적으로 소프트웨어를 닫거나 다시 시작할 때 프로세스를 직접 실행하는 대신 해당 프로그램을 닫거나 다시 시작합니다. 예를 들어, 아파치 서비스를 다시 시작하려면 일반적으로 "service httpd restart" 명령을 사용하여 아파치 프로그램을 다시 시작합니다.

그렇다면 프로세스를 직접 관리하여 Apache를 종료하거나 다시 시작할 수 있나요? 대답은 '예'입니다. 그렇다면 프로세스의 신호(Signal)에 의존해야 합니다. 우리는 프로세스에 번호를 부여하고 우리가 원하는 작업을 프로세스에 알려주어야 합니다.

Linux 운영 체제에서 신호는 매우 중요합니다. 신호는 키보드에서 생성되거나, 소프트웨어 조건에 의해 생성되거나, 하드웨어 예외를 호출하여 생성될 수 있습니다. Linux에는 시스템 함수 호출에서 생성된 총 64개의 신호가 있습니다. Linux 사용자는 다음과 같이 kill -l을 통해 이를 볼 수 있습니다.

1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU	25) SIGXFSZ
26) SIGVTALRM	27) SIGPROF	28) SIGWINCH	29) SIGIO	30) SIGPWR
31) SIGSYS	34) SIGRTMIN	35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3
38) SIGRTMIN+4	39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8
43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12	47) SIGRTMIN+13
48) SIGRTMIN+14	49) SIGRTMIN+15	50) SIGRTMAX-14	51) SIGRTMAX-13	52) SIGRTMAX-12
53) SIGRTMAX-11	54) SIGRTMAX-10	55) SIGRTMAX-9	56) SIGRTMAX-8	57) SIGRTMAX-7
58) SIGRTMAX-6	59) SIGRTMAX-5	60) SIGRTMAX-4	61) SIGRTMAX-3	62) SIGRTMAX-2
63) SIGRTMAX-1	64) SIGRTMAX

처음 32개 유형은 일반적으로 소프트웨어가 대기열을 지원하지 않는 경우에 사용됩니다. 32가지 유형을 신뢰할 수 있는 신호라고 하며 일반적으로 하드웨어에서 큐잉을 지원하는 데 사용됩니다.

Linux의 일반적인 신호

신호 코드 신호 이름 설명
1 SIGHUP 이 신호로 인해 프로세스가 즉시 종료됩니다. 그런 다음 구성을 다시 읽으십시오. 파일 다시 시작 후
2 SIGINT 프로그램 중단 신호, 포그라운드 프로세스를 종료하는 데 사용됩니다. 출력 Ctrl+C 단축키
3 SIGQUIT 프로그램 종료 신호와 동일(Ctrl + 와 동일)
8 SIGFPE 치명적인 산술 연산 오류가 발생할 때 발생합니다. 부동 소수점 연산 오류뿐만 아니라 오버플로, 0으로 나누기 등 기타 모든 산술 연산 오류도 포함됩니다.
9 SIGKILL 은 프로그램을 즉시 종료하는 데 사용됩니다. 이 신호는 차단, 처리 또는 무시될 수 없습니다. 일반적으로 실제 시간 또는 시계 시간을 계산하는 프로세스
14 SIGALRM 클럭 타이밍 신호를 강제 종료하는 데 사용됩니다. 알람 기능은 이 신호
15 SIGTERM 을 사용하여 프로세스를 정상적으로 종료하며, kill 명령의 기본 신호입니다. 프로세스에서 문제가 발생하면 이 신호는 프로세스를 정상적으로 종료할 수 없습니다. 그런 다음에만 신호 9
18 SIGCONT 인 SIGKILL 신호를 시도합니다. 프로세스. 이 신호는 차단할 수 없습니다
19 SIGSTOP 이 신호는 포그라운드 프로세스를 일시 중지할 수 있으며 이는 Ctrl+Z 단축키를 입력하는 것과 같습니다. 이 신호는 차단할 수 없습니다

KILL, STOP 신호는 차단, 무시 또는 캡처할 수 없습니다.

Term은 프로세스를 종료하는 것을 의미합니다. 코어는 프로세스를 종료하고 코어를 덤프하는 것을 의미합니다. Stop은 스레드를 일시 중단하고 Cont는 일시 중단된 스레드를 재개합니다.

공통 신호의 일반적인 용도

  • SIGHUP

    이 신호는 사용자 단말의 연결(정상 또는 비정상)이 종료될 때, 일반적으로 단말의 제어 프로세스가 종료될 때 발행되어 동일한 세션 내의 다양한 작업을 알리고, 이 시점에서는 더 이상 제어 터미널과 연결되지 않습니다.

    Linux에 로그인하면 시스템은 로그인한 사용자에게 터미널 세션을 할당합니다. 포그라운드 프로세스 그룹과 백그라운드 프로세스 그룹을 포함하여 이 터미널에서 실행되는 모든 프로그램은 일반적으로 이 세션에 속합니다. 사용자가 Linux에서 로그아웃하면 포그라운드 프로세스 그룹과 터미널로 출력되는 백그라운드 프로세스가 SIGHUP 신호를 받습니다.

    이 시그널의 기본 동작은 프로세스를 종료하는 것이므로, 로그아웃 후 전후 프로세스와 터미널 출력이 백그라운드에서 진행되는 프로세스가 종료됩니다.

    하지만 이 신호를 캡처할 수 있습니다. 예를 들어 wget은 SIGHUP 신호를 캡처하고 이를 무시할 수 있습니다. 이러한 방식으로 Linux에서 로그아웃하더라도 wget은 계속 다운로드할 수 있습니다.

    또한 터미널에서 연결이 끊어진 데몬의 경우 이 신호는 구성 파일을 다시 읽으라고 알리는 데 사용됩니다.

    예를 들어 nginx 프로세스에 HUP 신호를 보내면 구성을 새로 고칠 수 있습니다.

  • SIGINT: 사용자가 INTR 문자(일반적으로 Ctrl-C)를 입력할 때 발행되는 프로그램 종료(인터럽트) 신호로, 프로세스를 종료하도록 전경 프로세스 그룹에 알리는 데 사용됩니다.

  • SIGQUIT: SIGINT와 비슷하지만 QUIT 문자(보통 Ctrl-)에 의해 제어됩니다. 프로세스는 SIGQUIT 수신으로 인해 종료할 때 코어 파일을 생성합니다. 이는 이러한 의미에서 프로그램 오류 신호와 유사합니다.

  • SIGTERM:

    프로그램 종료(종료) 신호입니다. SIGKILL과 달리 이 신호는 차단되고 처리될 수 있습니다. 일반적으로 프로그램이 자동으로 정상적으로 종료되도록 요구하여 프로세스가 종료되기 전에 필요한 정리 작업을 수행할 수 있도록 하는 데 사용됩니다.

    쉘 명령 kill은 기본적으로 이 신호를 생성합니다. 프로세스를 종료할 수 없으면 SIGKILL을 시도합니다.

  • SIGTERM을 사용하면 프로세스가 정상적으로 종료될 수 있습니다. 프로세스 자체가 정상적으로 종료되지 않으면 SIGKILL을 사용하여 정상적으로 종료되도록 하세요.

  • SIGCONT: 중지된 프로세스를 계속 실행합니다. 이 신호는 차단할 수 없습니다. 프로그램이 중지된 상태에서 실행을 계속할 때 특정 작업을 완료하도록 할 수 있습니다.

  • SIGSTOP: 프로세스 실행을 중지합니다. 종료 및 인터럽트와 다릅니다. 프로세스가 아직 종료되지 않았지만 실행이 일시 중지됩니다.

일반적으로 사용되는 신호 단축키

  • ctrl-c는 SIGINT 신호를 포그라운드 프로세스 그룹의 모든 프로세스에 보냅니다. 실행 중인 프로그램을 종료하는 데 자주 사용됩니다.

  • ctrl-z는 프로세스를 일시 중지하는 데 자주 사용되는 포그라운드 프로세스 그룹의 모든 프로세스에 SIGTSTP 신호를 보냅니다.

  • ctrl-d는 신호를 보내지 않지만 EOF를 나타내는 특수 이진 값을 나타냅니다.

  • ctrl- 포그라운드 프로세스 그룹의 모든 프로세스에 SIGQUIT 신호를 보내고 포그라운드 프로세스를 종료하고 코어 파일을 생성합니다.

Kill foreground processCtrl-z
Key Function
Ctrl-cCtrl-c Kill foreground process
Ctrl-z Suspend foreground process
Ctrl-d Terminate input, or exit shell
Ctrl-s Suspend output
Ctrl-q Resume output
Ctrl-o Discard output
Ctrl-l

전경 일시 중지 process

Ctrl-d🎜🎜입력 종료 또는 쉘 종료🎜🎜🎜🎜Ctrl-s🎜🎜출력 일시 중단🎜🎜🎜🎜Ctrl- q🎜🎜출력 재개🎜🎜🎜🎜Ctrl-o🎜🎜출력 취소🎜🎜🎜🎜Ctrl-l🎜🎜화면 지우기🎜🎜🎜🎜🎜 관련 추천: "🎜Linux 비디오 튜토리얼🎜"🎜🎜

위 내용은 리눅스에는 어떤 신호가 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.