Loading...
MySQL 9.5 Reference Manual 9.5의 6.10 Unix Signal Handling in MySQL의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
Unix 및 Unix 계열 시스템에서 프로세스는 root 시스템 계정
또는 해당 프로세스를 소유한 시스템 계정이 보낸 시그널을
수신할 수 있습니다. 시그널은 kill 명령을 사용하여
보낼 수 있습니다. 일부 커맨드 인터프리터는
SIGINT 시그널을 보내기 위한 Control+C와 같은
특정 키 시퀀스를 시그널과 연결합니다. 이 섹션은
MySQL 서버 및 클라이언트 프로그램이 시그널에 어떻게 반응하는지
설명합니다.
mysqld는 시그널에 다음과 같이 반응합니다:
SIGTERM은 서버가 종료되도록 합니다.
이는 서버에 연결하지 않고
SHUTDOWN 문을 실행하는 것과 같습니다
(종료를 위해서는
SHUTDOWN 권한을 가진 계정이 필요합니다).
SIGHUP은 서버가 그랜트 테이블을 다시
로드하고 테이블, 로그, 스레드 캐시, 호스트 캐시를 플러시하도록 합니다.
이 동작은 여러 형태의
FLUSH 문과 유사합니다. 시그널을
보내면 서버에 연결하지 않고도 플러시 작업을 실행할 수
있으며, 이 작업에는 해당 작업을 수행하기에 충분한
권한을 가진 MySQL 계정이 필요합니다.
이 동작은 더 이상 사용되지 않으며, 향후 버전의 MySQL에서 제거될 수 있습니다.
SIGUSR1은 서버가 에러 로그,
일반 쿼리 로그, 슬로우 쿼리 로그를 플러시하도록 합니다.
SIGUSR1의 한 가지 용도는 서버에
연결하지 않고 로그 로테이션을 구현하는 것입니다. 이 작업에는
해당 작업을 수행하기에 충분한 권한을 가진
MySQL 계정이 필요합니다. 로그 로테이션에 대한 정보는
Section 7.4.6, “Server Log Maintenance”를 참조하십시오.SIGUSR1에 대한 서버의 반응은
SIGHUP에 대한 반응의 부분집합으로,
SIGUSR1을 보다 “가벼운” 시그널로
사용하여 스레드 캐시 및 호스트 캐시를 플러시하거나
에러 로그에 상태 보고서를 기록하는 등의
다른 SIGHUP 효과 없이 특정 로그만
플러시할 수 있습니다.
SIGINT는 일반적으로 서버에서 무시됩니다.
--gdb 옵션을 사용하여 서버를 시작하면
디버깅 목적을 위해 SIGINT에 대한
인터럽트 핸들러가 설치됩니다. 자세한 내용은
Section 7.9.1.4, “Debugging mysqld under gdb”를
참조하십시오.MySQL 클라이언트 프로그램은 시그널에 다음과 같이 반응합니다:
mysql 클라이언트는
SIGINT(Control+C를 입력한 결과인 경우가
일반적)를 현재 문이 있는 경우 이를
중단하라는 지시로 해석하고, 그렇지 않은 경우에는
진행 중인 부분 입력 줄을 취소합니다. 이 동작은
SIGINT 시그널을 무시하도록 하는
--sigint-ignore 옵션을 사용하여
비활성화할 수 있습니다.
MySQL 클라이언트 라이브러리를 사용하는 클라이언트 프로그램은 기본적으로
SIGPIPE 시그널을 블록합니다. 가능한
변형은 다음과 같습니다:
클라이언트는 기본 동작을 재정의하기 위해
자체 SIGPIPE 핸들러를 설치할 수 있습니다.
자세한 내용은
Writing C API Threaded Client Programs를 참조하십시오.
클라이언트는 연결 시
mysql_real_connect()에
CLIENT_IGNORE_SIGPIPE 옵션을 지정하여
SIGPIPE 핸들러 설치를 방지할 수 있습니다.
자세한 내용은 mysql_real_connect()를
참조하십시오.
6.9 Environment Variables
7 MySQL Server Administration