linux kill 명령 및 USR 1 신호 해석
[root@proxy ~]# vim /usr/local/nginx/logbak.sh
#!/bin/bash
date=`date +%Y%m%d`
logpath=/usr/local/nginx/logs
if [ -f $logpath/nginx.pid ];then
mv $logpath/access.log $logpath/access-$date.log
mv $logpath/error.log $logpath/error-$date.log
kill -USR1 $(cat $logpath/nginx.pid)
fi
[root@proxy ~]# crontab -e
03 03 * * 5 /usr/local/nginx/logbak.sh
우리 먼저 보 자. kill - USR 1 $(cat $logpath / nginx. pid) 이 명령 은 무엇 을 했 습 니까?
1. 먼저 / usr / local / nginx / logs / nginx. pid 파일 은 nginx 의 pid 번 호 를 저장 하고 있 습 니 다. nginx 프로그램 을 시작 할 때 이 파일 이 자동 으로 생 성 됩 니 다. nginx 프로그램 을 닫 으 면 이 nginx. pid 파일 이 사라 집 니 다.
[root@proxy ~]# ss -antulp | grep nginx
tcp LISTEN 0 128 *:80 *:* users:(("nginx",pid=3960,fd=6),("nginx",pid=3959,fd=6),("nginx",pid=3958,fd=6))
[root@proxy ~]# cat /usr/local/nginx/logs/nginx.pid
3958
##################################################################
[root@proxy ~]# nginx -s stop
[root@proxy ~]# cat /usr/local/nginx/logs/nginx.pid
cat: /usr/local/nginx/logs/nginx.pid:
2 $(cat $logpath / nginx. pid) 는 'cat $logpath / nginx. pid' 와 비슷 합 니 다. nginx 의 프로 세 스 pid 번 호 를 받 았 습 니 다. 저 는 3958 입 니 다.
그러면 전체 명령 은: kill - USR 1 3958
-USR 1 은 무엇 을 대표 합 니까? 우 리 는 이어서 아래 를 봅 시다.
[root@proxy ~]# 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
Liux 시스템 에서 Liux 는 신 호 를 통 해 '실행 중인 프로 세 스' 와 통신 합 니 다.Liux 시스템 에 도 자주 사용 하 는 SIGHOP, SIGKILL, SIGSTOP 등 미리 정 의 된 신호 가 많 습 니 다.
USR 1 에 대응 하 는 숫자 옵션 은 - 10 입 니 다. 그러면 nginx 는 USR 1 의 신 호 를 받 은 후에 무엇 을 했 습 니까?
(1) nginx 의 주 프로 세 스 는 USR 1 신 호 를 받 으 면 로그 파일 을 다시 엽 니 다. (nginx 설정 파일 의 로그 이름 으로 설정 파일 에 access log 항목 이 설정 한 값 입 니 다. 파일 이 존재 하지 않 으 면 자동 으로 새 파일 xxx. log 를 만 듭 니 다.)
[root@proxy ~]# /usr/local/nginx/logbak.sh
[root@proxy ~]# ls /usr/local/nginx/logs/
access-20181103.log access.log error-20181103.log error.log nginx.pid
#
(2) 그리고 로그 파일 의 소유 자 를 '워 크 프로 세 스 (worker 프로 세 스)' 로 바 꿉 니 다. 워 크 프로 세 스 가 로그 파일 에 대한 읽 기와 쓰기 권한 을 갖 도록 하기 위해 서 입 니 다. (master 와 worker 는 보통 다른 사용자 로 실행 되 기 때문에 소유 자 를 바 꿔 야 합 니 다.)
[root@proxy ~]# ll /usr/local/nginx/logs/access.log
-rw-r--r--. 1 nginx root 0 11 3 13:25 /usr/local/nginx/logs/access.log
[root@proxy ~]# ll /usr/local/nginx/logs/access-20181103.log
-rw-r--r--. 1 root root 204608511 11 3 10:44 /usr/local/nginx/logs/access-20181103.log
##
(3) nginx 메 인 프로 세 스 는 이름 을 바 꾸 는 로그 파일 을 닫 습 니 다.구체 적 으로 더 세분 화 된 점 은 메 인 프로 세 스 가 USR 1 신 호 를 워 커 에 게 보 내 고 워 커 가 이 신 호 를 받 으 면 로그 파일 을 다시 엽 니 다 (즉, 설정 파일 에 약 정 된 xxx. log).
3 위의 kill - l 명령 을 결합 하여 보충 합 니 다.
9 번 째 신호 (SIGKILL) 만 이 프로 세 스 를 무조건 종료 할 수 있 고 다른 신호 프로 세 스 는 무시 할 권리 가 있 습 니 다.다음은 자주 사용 하 는 신호 입 니 다.
HUP 1 터미널 단선, 프로필 다시 불 러 오기, 부 드 러 운 업그레이드
INT 2 인 터 럽 트 (Ctrl + C)
QUIT 3 종료 (Ctrl + \)
TERM 15 종료 (kill 명령 후 프로 세 스 를 직접 추가 하 는 pid 번호 의 기본 옵션 이 - 15 이면 이 프로 세 스 를 종료 하 는 것 을 의미 합 니 다)
KILL 9 강제 종료
CONT 18 계속 (STOP 와 반대로 fg / bg 명령)
STOP 19 일시 정지 (Ctrl + Z)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
용감한 바로 가기 및 우분투 응용 프로그램안녕하세요 여러분, 이 기사에서는 모든 사이트에서 pwa를 생성하고 실행기 응용 프로그램으로 추가하는 방법을 설명하고 싶습니다. 일부 웹사이트는 PWA로 설치를 허용하지 않지만 유사한 애플리케이션을 원합니다. 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.