pm 2自己起動node.jsアプリケーション起動関連コマンドの設定

3035 ワード

Node.jsサービスを実行する場合、サーバーがうっかりしたり、他の理由で再起動したりした場合、サービスは再起動に追随せず、手動でサービスを実行する必要があります.これは不便に違いありません.もちろんshellスクリプトで起動できますが、このようなサービス管理には不利です.pm 2で管理できます.
グローバルインストールpm 2
npm install pm2 -g

プロジェクトのディレクトリを見つけ、pm2を使用して起動します.
実行命令pm2 startプロジェクト起動ファイルを起動する
[root@centos7 server]# pm2 start app.js
[PM2] Starting /www/server/yapi/vendors/server/app.js in fork_mode (1 instance)
[PM2] Done.
┌──────────┬────┬─────────┬──────┬───────┬────────┬─────────┬────────┬─────┬──────────┬──────┬──────────┐
│ App name │ id │ version │ mode │ pid   │ status │ restart │ uptime │ cpu │ mem      │ user │ watching │
├──────────┼────┼─────────┼──────┼───────┼────────┼─────────┼────────┼─────┼──────────┼──────┼──────────┤
│ app      │ 0  │ 1.7.1   │ fork │ 21501 │ online │ 0       │ 0s     │ 0%  │ 2.9 MB   │ root │ disabled │
└──────────┴────┴─────────┴──────┴───────┴────────┴─────────┴────────┴─────┴──────────┴──────┴──────────┘
 Use `pm2 show ` to get more details about an app
[root@centos7 server]# 


現在のリストを保存
実行命令pm2 save既存リストデータを保存し、起動すると自動的に保存したアプリケーションリストをロードして起動する
[root@centos7 server]# pm2 save
[PM2] Saving current process list...
[PM2] Successfully saved in /root/.pm2/dump.pm2
[root@centos7 server]# 

起動の設定
実行命令pm2 startup設定起動出力以下の情報は設定成功
[root@centos7 server]# pm2 startup
[PM2] Init System found: systemd
Platform systemd
Template
[Unit]
Description=PM2 process manager
Documentation=https://pm2.keymetrics.io/
After=network.target

[Service]
Type=forking
User=root
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Environment=PATH=/usr/local/src/node-v10.15.3-linux-x64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PM2_HOME=/root/.pm2
PIDFile=/root/.pm2/pm2.pid
Restart=on-failure

ExecStart=/usr/local/src/node-v10.15.3-linux-x64/lib/node_modules/pm2/bin/pm2 resurrect
ExecReload=/usr/local/src/node-v10.15.3-linux-x64/lib/node_modules/pm2/bin/pm2 reload all
ExecStop=/usr/local/src/node-v10.15.3-linux-x64/lib/node_modules/pm2/bin/pm2 kill

[Install]
WantedBy=multi-user.target

Target path
/etc/systemd/system/pm2-root.service
Command list
[ 'systemctl enable pm2-root' ]
[PM2] Writing init configuration in /etc/systemd/system/pm2-root.service
[PM2] Making script booting at startup...
[PM2] [-] Executing: systemctl enable pm2-root...
[PM2] [v] Command successfully executed.
+---------------------------------------+
[PM2] Freeze a process list on reboot via:
$ pm2 save

[PM2] Remove init script via:
$ pm2 unstartup systemd
[root@centos7 server]#


関連コマンド
# app pm2      
pm2 show app #            
pm2 -h #   pm2    ,      
pm2 start app.js -n project #         project
pm2 list #       
pm2 stop app #       
pm2 restart app #       
pm2 delete app #         
pm2 status #     
pm2 monit #      CPU