[개발] pm2 - 1 (node.js 관리)

in SCT.암호화폐.Crypto24 days ago (edited)

안녕하세요 @realmankwon입니다.

개인적으로 사용하고 있는 봇을 정리하고 있습니다.
UPVU, 스몬봇, 개인봇 등으로 인해 서버가 많이 늘어났습니다.
스몬봇만 해도 서버가 3개인 상태입니다.

그래서 좀 더 편하게 관리하기 위해서 봇들을 사용량에 따라 나누어서 별도 관리를 하게 하였습니다.
또한 기존에는 node.js 를 실행시킬때 forever 를 사용하였지만 이번에는 pm2 를 사용해 봤습니다.
사용법은 forever 와 별 차이가 없었습니다.
일단 모든 모듈을 끄고 소스를 받고 설정을 한 뒤 pm2 로 해당 모듈들을 실행했습니다.

1 . 실행

기본적으로는 아래와 같이 start 파일명을 하면 실행이 되었습니다.

  • pm2 start [파일명]

하지만 동일한 파일명을 가진 것들의 경우 구분을 해 줄 필요가 있습니다.
이때는 --name 뒤에 서비스명을 지정할 수 있습니다.

  • pm2 start [파일명] --name [서비스명 지정]

2 . 중단

중단할때는 파일명이나 지정한 서비스명을 stop 뒤에 쓰면 됩니다.

  • pm2 stop [파일명 or 서비스명]
    실행 후 다음과 같이 status 에 stopped라고 표시가 됩니다.

3 . 재실행

stopped 된 것을 다시 실행시킬때는 restart 문을 사용합니다.

  • pm2 restart [파일명 or 서비스명]

4 . 삭제

중단은 나중에 다시 실행을 할 수 있는데 이것마저 완전히 삭제를 하고 싶을때는 delete를 사용합니다.

  • pm2 delete [파일명 or 서비스명]

5 . 로그 파일

로그 파일은 ~/.pm2/logs 폴더에 쌓이고 있습니다.
로그 파일명의 규칙은 다음과 같습니다.

  • 일반 로그 : [파일명 or 서비스명]-out.log
  • 에러 로그 : [파일명 or 서비스명]-error.log

6 . 로그 로테이트

pm2 는 pm2-logrotate 라는 모듈을 설치하면 자동으로 로그 로테이트가 되었습니다.

  • pm2 install pm2-logrotate

설치된 것을 삭제할때는 uninstall를 씁니다.

  • pm2 uninstall pm2-logrotate

로그 스테이트의 구성을 보는 방법은 다음과 같습니다.

  • pm2 conf

설정을 한 후에 현재까지는 문제가 없지만 예외 상황이 언제 생길시 모릅니다.
이전에는 예외 상황으로 인해 봇이 뻗으면 재실행시켜 주는 로직이 있었는데 그것은 이제 사용을 못하겠네요.
앞으로 계속 써 보면서 기능들을 더 찾아봐야겠습니다.

Sort:  

@upvu voted. voting percent : 16.04 %, delegate sp : 12502, token amount : 10262, total sp of upvu : 2142650

@realmankwon transfered 24 KRWP to @krwp.burn. voting percent : 89.53%, voting power : 81.63%, steem power : 1847938.48, STU KRW : 1200.
@realmankwon staking status : 8000 KRWP
@realmankwon limit for KRWP voting service : 24 KRWP (rate : 0.003)
What you sent : 24 KRWP [45055414 - ad5321d65c7a3f88abf1ce347aecefb52df528be]

Coin Marketplace

STEEM 0.21
TRX 0.02
BTC 11678.17
ETH 396.37
SBD 1.03