pm2 를 사용 하여.NET Core 프로그램 을 지 키 는 방법 에 대한 자세 한 설명

프로 세 스 를 지 키 는 전생
데 몬데 몬 은 배경 에서 실행 되 고 터미널 에서 제어 되 지 않 는 프로 세 스 입 니 다.세 션 이 끝나 면 종료 되 지 않 습 니 다.예 를 들 어 my sql,apache 등 프로그램 은 기본적으로 데 몬 을 제공 하거나 데 몬 방식 으로 작 동 합 니 다.우리 가 잘 아 는'my sqld','httpd'등 d 는 데 몬 이라는 뜻 입 니 다.예 를 들 어 우리 가 Linux 시스템 에서 명령dotnet xxx.dll으로.NET Core 응용 프로그램 을 실행 할 때,만약 우리 가 세 션 을 끝 낸다 면,우리 의 프로그램 은 실행 을 끝 낼 것 이다.그 이 유 는 Linux 시스템 에 일련의 신 호 를 통 해 프로 세 스 가 통신 할 수 있 는 신호 메커니즘 이 있 기 때 문 입 니 다.사용자 가 세 션 을 끝 낼 때 현재 세 션 의 하위 프로 세 스에 HUP 신 호 를 보 냅 니 다.일반적인 상황 에서 현재 세 션 의 하위 프로 세 스 는 HUP 신 호 를 받 은 후에 자신 에서 물 러 납 니 다.이 때 우 리 는.NET Core 응용 프로그램 프로 세 스 를 제어 하기 위해 데 몬 이 필요 합 니 다.
2.프로 세 스 백 엔 드 실행
Linux 에서 프로 세 스 백 엔 드 방식 이 많 습 니 다.밤:Supervisor,Screen,nohup 명령 등 이 있 습 니 다.Supervisor 는 데 몬 을 만 든 다음 에 프로그램 프로 세 스 를 하위 프로 세 스 로 만 들 었 습 니 다.이러한 제어 방식 을 통 해 프로그램 배경 에서 실 행 됩 니 다.nohup 은 말 그대로 세 션 프로 세 스에 hup 신 호 를 보 내지 않 습 니 다.
여기 서 나 는 본문의 주인공 pm2 를 꺼 내 pm2 를 통 해 프로 세 스 백 엔 드 를 실행 시 켰 다.
3.pm2 소개
pm2 는 이름 상 우리 가 평소에 생활 속 에서 접 하 는 pm 2.5 와 비슷 하지만 그들 은 하나 가 아니다.nodejs 에서 개발 한 동 화 는 pm2 에 익숙 할 수 있 습 니 다.pm2 는 고급 nodejs 프로 세 스 관리 도구 입 니 다.

이 를 보면,nodejs 프로 세 스 관리 도구 가.NET Core 프로 세 스 를 어떻게 관리 하 는 지 의문 이 들 수 있 습 니 다.블 로 거들 은 오랫동안 리 눅 스에 서 굴 러 다 녔 지만 pm2 를 사용 하여.NET Core 프로 세 스 를 지 키 는 데 전혀 문제 가 없다 는 것 을 발견 했다.nodejs 를 제외 한 많은 프로그램 이 가능 하 다.그리고 번 거 로 운 설정 이 필요 하지 않 습 니 다.설치,사용,관리 프로 세 스 가 매우 간단 합 니 다.이것 은 제 가 선택 한 주요 원인 입 니 다.
프로 세 스 백 엔 드 를 실행 하기 위해 pm2 를 사용 하 는 것 입 니 다.nodejs 프로그램 이 아니라면 pm2 의 일부 nodejs 를 위 한 기능 은 사용 할 수 없 을 수도 있 지만.NET Core 프로그램 을 지 키 는 데 충분 합 니 다.
4.pm2 의 설치 및 사용
4.1 설치
4.1.1 nodejs 설치
pm2 를 사용 하려 면 nodejs 를 설치 해 야 합 니 다.이 인터넷 의 많은 자 료 는 더 이상 본 고 에서 상세 하 게 설명 하지 않 겠 습 니 다.저 는 앞에서 Centos 7 에 설 치 된 글 을 쓴 적 이 있 습 니 다.전송 문
4.1.2 pm2 설치

npm install pm2 -g
한 마디 로 쉽 지 않 아 요?설치 성공 후 명령 pm2 를 사용 하여 설치 성공 여 부 를 확인 합 니 다.다음 출력 을 볼 수 있 습 니 다.
-------------
__/\\\\\\\\\\\\\____/\\\\____________/\\\\____/\\\\\\\\\_____
_\/\\\/////////\\\_\/\\\\\\________/\\\\\\__/\\\///////\\\___
_\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_\///______\//\\\__
_\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\___________/\\\/___
_\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____
_\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//________
_\/\\\_____________\/\\\_____________\/\\\___/\\\/___________
_\/\\\_____________\/\\\_____________\/\\\__/\\\\\\\\\\\\\\\_
_\///______________\///______________\///__\///////////////__
Runtime Edition
PM2 is a Production Process Manager for Node.js applications
with a built-in Load Balancer.
Start and Daemonize any application:
$ pm2 start app.js
Load Balance 4 instances of api.js:
$ pm2 start api.js -i 4
Monitor in production:
$ pm2 monitor
Make pm2 auto-boot at server restart:
$ pm2 startup
To go further checkout:
http://pm2.io/
-------------
usage: pm2 [options]
pm2 -h, --help all available commands and options
pm2 examples display pm2 usage examples
pm2 -h help on a specific command
Access pm2 files in ~/.pm2
4.2 사용
4.2.1 상용 명령
명령 하 다.
설명 하 다.
pm2 startup
pm2 자동 시작 설정
pm2 unstartup
pm2 제거 자동 시작
pm2 save
현재 프로 세 스 저장
pm2 start<프로 세 스 시작 명령>[--name<프로 세 스 이름>]
프로그램 시작
pm2 list
모든 프로 세 스 상태 보이 기
pm2 monit
프로 세 스 모니터링
pm2 logs[프로 세 스 id 또는 이름]
프로 세 스 로그 보이 기
pm2 stop [all]
프로 세 스 정지
pm2 restart [all]
[모든]프로 세 스 다시 시작
pm2 delete[<프로 세 스 이름 또는 id>,all]
지정 한[모든]프로 세 스 삭제
pm2 info[프로 세 스 id 또는 이름]
응용 프로그램 정보 보기
공식 문서:http://pm2.keymetrics.io/docs/usage/quick-start/
5.pm2 로 ASP.NET Core 프로그램 지 키 기
5.1 웹 api 프로젝트 만 들 기

#     
dotnet new webapi --no-https -o testwebapi
#     
cd testwebapi/
dotnet publish -c Release
cd bin/Release/netcoreapp2.1/publish
#     
dotnet testwebapi.dll
실행 에 성공 하면 다음 과 같은 출력 이 있 습 니 다:

5.2 pm2 수호 사용
5.2.1 시작
우리 가 방금 실행 한 프로그램 을 끝내 고 방금 디 렉 터 리 에서 아래 명령 을 실행 합 니 다.

pm2 start "dotnet testwebapi.dll" --name testwebapi
실행 성공:

우 리 는 응용 프로그램의 pid,실행 상태,재 부팅 횟수(응용 프로그램 충돌 재 부팅/수 동 재 부팅),실행 시간,cpu 와 메모리 점용 등 을 뚜렷하게 볼 수 있 습 니 다.매우 편리 하 다
curl 접근 api 를 사용 하여 실행 성공 여 부 를 확인 합 니 다.

curl http://localhost:5000/api/values

5.2.2 로그 보기

pm2 logs testwebapi

5.2.3 응용 프로그램 정보 보기

pm2 info testwebapi

5.2.4 모니터링 응용 프로그램

pm2 monit testwebapi

5.2.3 재 부팅 정책
pm2 는 프로그램 이 비정상적 으로 종료 되 었 을 때 자동 으로 다시 시작 합 니 다.이상 종료 란 종료 코드 가 0 이 아 닌 것 을 말 합 니 다.
테스트:
ValueController 를 수정 하여 종료 코드 를 1 로 추가 합 니 다.

발표 하고 pm2 로 시작 합 니 다.pm2 list을 통 해 프로그램 재 부팅 횟수 를 0 으로 조회 합 니 다.

api 에 접근 하여 이상 종료:

curl http://localhost:5000/api/values
다시pm2 list명령 조 회 를 통 해 재 개 된 것 을 발견 할 수 있 습 니 다.

끝나다
pm2 이 도 구 는 Supervisor 와 nohup 에 비해 Supervisor 에 대해 설정 이 없고 긴 명령 을 지지 않 아 도 됩 니 다.nohup 관리 프로 세 스 가 편리 합 니 다.여러분 과 저 와 교류 하 는 것 을 환영 합 니 다.
pm2 공식 문서
CentOS 7 소스 코드 컴 파일 설치 NodeJSby 샤 오 천 마스터
자,이상 이 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기