> 운영 및 유지보수 > 엔진스 > nginx를 다시 시작할 때 nginx.pid 파일이 손실된 경우 수행할 작업

nginx를 다시 시작할 때 nginx.pid 파일이 손실된 경우 수행할 작업

王林
풀어 주다: 2020-10-19 17:31:57
앞으로
5066명이 탐색했습니다.

nginx를 다시 시작할 때 nginx.pid 파일이 손실된 경우 수행할 작업

1. nginx 작업 중지

(권장 튜토리얼: nginx 튜토리얼)

nginx 프로세스에 신호를 보내면 작업 중지가 이루어집니다.

[root@yoodb.com ~]# /usr/local/nginx/sbin/nginx -s reload
nginx: [error] open() “/usr/local/nginx/logs/nginx.pid” failed (2: No such file or directory)
로그인 후 복사

Step. 1:

nginx 메인 프로세스 번호를 쿼리하기 위한 코드는 다음과 같습니다.

ps -ef | grep nginx
로그인 후 복사

프로세스 목록에서 마스터 프로세스를 찾으며 해당 번호가 메인 프로세스 번호입니다.

2단계:

Nginx를 침착하게 중지하라는 신호 보내기:

kill -QUIT 主进程号
로그인 후 복사

Nginx를 빠르게 중지:

kill -TERM 主进程号
로그인 후 복사

Nginx를 강제로 중지하려면 코드는 다음과 같습니다.

pkill -9 nginx
로그인 후 복사

또한 pid 파일 저장 경로가 nginx.conf에 구성되어 있으면 이 파일은 Nginx 기본 프로세스 번호를 저장합니다. 지정하지 않으면 nginx 로그 디렉터리에 저장됩니다. pid 파일을 사용하면 먼저 Nginx의 주요 프로세스 번호를 쿼리할 필요가 없으며 Nginx에 직접 신호를 보냅니다. 명령 코드는 다음과 같습니다.

kill -信号类型 ‘/usr/nginx/logs/nginx.pid’
로그인 후 복사

2. nginx의 원활한 재시작

변경하는 경우 구성을 변경하면 Nginx에 원활하게 신호를 보낼 수 있습니다.

부드러운 재시작 명령 코드는 다음과 같습니다:

kill -HUP 住进称号或进程号文件路径
로그인 후 복사

또는

/usr/nginx/sbin/nginx -s reload
로그인 후 복사

를 사용하세요. 구성 파일을 수정한 후 수정된 구성 파일이 올바른지 확인하는 것이 재시작 후 안정에 영향을 줄 수 있는 Nginx 오류를 방지하는 것이 가장 좋습니다. 서버의 운영. Nginx 구성이 올바른지 확인하는 명령 코드는 다음과 같습니다.

nginx -t -c /usr/nginx/conf/nginx.conf
로그인 후 복사

또는

/usr/nginx/sbin/nginx -t
로그인 후 복사

3. nginx의 원활한 업그레이드

서버에서 실행 중인 Nginx를 업그레이드해야 하는 경우 모듈을 추가하거나 삭제하면 됩니다. 서버가 일정 기간 동안 서비스를 중단하고 Nginx가 서버 운영에 영향을 주지 않고 다양한 업그레이드 작업을 수행할 수 있도록 서버를 중지하고 해당 수정을 수행해야 합니다.

1단계:

Nginx 프로그램을 업그레이드하는 경우 먼저 이전 프로그램 파일을 새 프로그램으로 교체하세요. 컴파일 및 설치 후 새 프로그램이 Nginx 설치 디렉터리에 직접 컴파일됩니다.

2단계:

kill -USR2 旧版程序的主进程号或进程文件名
로그인 후 복사

명령 실행 이때 이전 Nginx 메인 프로세스는 프로세스 파일 이름을 .oldbin으로 바꾼 다음 새 버전의 Nginx를 실행합니다. 새로운 Nginx와 기존 Nginx가 함께 실행되어 요청을 처리합니다.

이제 이전 버전의 Nginx를 점차적으로 중지해야 합니다.

kill -WINCH 旧版主进程号
로그인 후 복사

명령을 입력하세요. 작업이 완료되면 천천히 이전 작업 프로세스가 종료되고 새 버전의 Nginx 작업 프로세스가 점차적으로 대체됩니다. 오래된 작업 과정.

새 버전을 사용하거나 이전 버전으로 되돌릴 수 있습니다.

4. 구성 오버로드 없이 새/이전 작업 프로세스를 시작하세요

kill -HUP 旧/新版主进程号
로그인 후 복사

이전/새 프로세스를 조용히 닫으세요

kill -QUIT 旧/新主进程号
로그인 후 복사

이때 아직 종료되지 않은 프로세스가 있음을 나타내는 오류가 보고되면, 다음 명령을 사용하여 이전/새 작업 프로세스를 먼저 닫은 다음 기본 프로세스 번호를 닫습니다.

kill -TERM 旧/新工作进程号
로그인 후 복사

Alibaba Cloud 서버에서 프로세스 nginx -s 중지 후 nginx -s 다시 로드를 다시 시작하면, 오류가 항상 보고됩니다

nginx: [error] open() “/alidata/server/nginx/logs/nginx.pid” failed (2: No such file or directory)
로그인 후 복사

이유: nginx 프로세스가 종료된 후 pid가 손실되고 다음에 다시 설치하면 문제를 해결할 수 있습니다. 영어 설명을 참고할 수도 있습니다:

issued a nginx -s stop and after that I got this error when trying to reload it.
[error]: invalid PID number “” in “/var/run/nginx.pid”
That /var/run/nginx/pid file is empty atm.
What do I need to do to fix it?
nginx -s reload is only used to tell a running nginx process to reload its config. After a stop,
you don’t have a running nginx process to send a signal to.
Just run nginx (possibly with a -c /path/to/config/file)
로그인 후 복사

사용 방법, 코드는 다음과 같습니다:

nginx -c /path/to/config/file
로그인 후 복사

Linux 시스템 실행 명령은 다음과 같습니다:

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
로그인 후 복사

위 내용은 nginx를 다시 시작할 때 nginx.pid 파일이 손실된 경우 수행할 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿