pm2 사용방법 1/2 By starseat 2022-01-26 21:31:24 NodeJS Post Tags NodeJS 로 서버를 만들때 유용한 pm2 사용방법을 간단하게 적어보자 한다. * [(pm2 사용방법 2/2 - ecosystem.config.js)](https://starseat.net/blog/view/22) 먼저 간단하게 app 을 만든다. (window10 이고 vscode 로 코딩하였다.) 프로젝트명을 `sample-server` 라 하고 다음 명령어를 실행한다. ``` > npm init ``` 막 뭐라 나오는데 샘플이니 `Enter` 를 막 누른다. ![image.png](/uploads/_temp/20220126/da3d867f5a928f148cb5f7830e0004b3.png) 그리고 `index.js` 파일을 생성한다. `index.js` 열고 다음 코드를 입력한다. ```javascript const cors = require('cors') const express = require("express"); const https = require('https'); const fs = require('fs'); const path = require('path'); const app = express(); const _port = 3000; // const httpOptions = { // key: fs.readFileSync(path.join(__dirname + '../../ssl/private.key')), // cert: fs.readFileSync(path.join(__dirname + '../../ssl/private.crt')), // ca: fs.readFileSync(path.join(__dirname + '../../ssl/private.pem')), // }; app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.use(cors()); app.use((err, req, res, next) => { //res.status(err.status || 500).json({msg: err.message || 'internal server error'}); res.status(err.status || 500).send({ msg: err.message || 'internal server error' }); }); app.get("/", (req, res) => { //res.status(200).json({msg: 'sample server'}); res.status(200).send('sample server'); }); const _isHttp = true; if (_isHttp) { app.listen(_port, () => console.log(`(http mode) start sample server. listen port: ${_port}`)); } else { https.createServer(httpOptions, app).listen(_port, () => { console.log(`(https mode) start sample server. listen port: ${_port}`); }); } ``` 소스를 보다보면 `ssl` 을 적용한 흔적이 있는데.. 무시하자. (ssl 도 적용 부분도 참고하셔요.) 실행하기에 앞서 필요한 패키지들을 설치한다. ``` > npm install cors express https ``` ![image.png](/uploads/_temp/20220126/6252bbbf8537f25959bfe91491a1def6.png) 그리고 실행해본다. ``` > node index ``` ![image.png](/uploads/_temp/20220126/95b13cd1c62150a7d9b782062e40b0b9.png) 웹 브라우져를 열고 `http://localhost:3000` 을 입력하면 잘 나올것이다. ![image.png](/uploads/_temp/20220126/da72acc0b5e8b7b577ab8df6b6aa8e7a.png) (자주 쓰는 크롬, 엣지, 웨일인 내 정보가 있어서 익스플로러로 캡쳐했다.) 서버가 잘 뜨는걸 확인했으니 인제 pm2 를 해보자!! 그렇담 pm2 를 설치해야지! pm2 는 global 로 설치한다. ``` > npm install -g pm2 ``` ![image.png](/uploads/_temp/20220126/ad10a0da3c04dfc192024cc6a39164d5.png) 설치된 것도 확인해보자 ``` > pm2 -v ``` ![image.png](/uploads/_temp/20220126/cfad68690b8b8a67619df301e5001113.png) pm2 는 다음 명령어를 가진다. * 시작: pm2 start {app} * 중지: pm2 stop {app name or index} * 목록: pm2 list * 목록 삭제: pm2 delete {app name or index} (다른 명령어들은 [구글에서 검색](https://www.google.com/search?q=pm2+%EB%AA%85%EB%A0%B9%EC%96%B4&rlz=1C1CHZL_koKR743KR743&oq=pm2+%EB%AA%85%EB%A0%B9%EC%96%B4&aqs=chrome..69i57j0i8i30l2j69i65.3097j0j4&sourceid=chrome&ie=UTF-8)해보자!) 이제 우리의 `sample-server` 를 `pm2`로 실행시켜 보자! ``` > pm2 start index ``` ![image.png](/uploads/_temp/20220126/49b23dd840e2bf07c1267633b629462b.png) 상태(status) 를 보니 `online` 로 잘 기동된 것도 보이고 브라우져에서도 잘 나타난다. 이제 `sample-server` 를 잠시 중지하고 다른 방법으로 실행시켜 보자. ``` > pm2 stop index > pm2 delete index ``` ![image.png](/uploads/_temp/20220126/1e8003dbffc87481614a8861208c4451.png) 다른 방법은 [다음 포스팅](https://starseat.net/blog/view/22)에서 다뤄보자. Previous Post - Next Post pm2 사용방법 2/2