# PM2 https://noob.tw/pm2/ 守護進程管理工具,幫助管理守護的應用程式。以簡單直觀的 CLI 命令列方式進行工作。 ### 安裝全域 pm2 ```bash $ sudo npm install pm2 -g ``` ## pm2 管理 Nuxt 頁面 轉到背景或用 pm2 管理 process(永久運行) ```bash $ sudo pm2 start /local/build/pm2.config.js ``` ### 系統啟動時運行 ```bash $ sudo pm2 startup systemd ``` ### 查看所有啟動的進程列表 ```bash $ sudo pm2 list ``` ### 停止id為0的進程 ```bash $ sudo pm2 stop 0 ``` ### 停止所有進程 ```bash $ sudo pm2 stop all ``` ### 重啟 指定/所有 進程 ```bash $ sudo pm2 restart (id|all) ``` ### 刪除 指定/所有 進程 ```bash $ sudo pm2 delete (id|all) ``` ### pm2 部署 Nuxt SSR 頁面 pm2.config.js 配置文件 ```javascript module.exports = { apps: [ { name: 'app_name', // 應用程式名稱 exec_mode: 'fork', args: 'start', port: 3000, script: './.output/server/index.mjs', // 啟動檔案位址 cwd: './', // 目前工作路徑 watch: [ // 監控變化的目錄,一旦變化自動重啟 '.output', 'public', ], ignore_watch: [ // 忽略這些目錄的變化 'node_modules', 'logs', ], node_args: '--harmony', // node的啟動模式 env: { // PORT: 3000, NODE_ENV: 'development', // 設定運行環境,此時process.env.NODE_ENV的值就是development // ORIGIN_ADDR: 'http://www.yoduao.com' }, env_production: { // PORT: 80, NODE_ENV: 'production', }, out_file: './logs/out.log', // 普通日誌路徑 error_file: './logs/err.log', // 錯誤日誌路徑 merge_logs: true, log_date_format: 'YYYY-MM-DD HH:mm Z', } ] } ``` ## express 部署靜態頁面 ### app.js 配置文件 ```javascript const express = require("express"); const app = express(); // 部署靜態頁面 Port app.listen(8080); app.use('/assets', express.static('./assets')); ``` ## 相關文章參考 * [pm2 中文網](https://pm2.fenxianglu.cn/docs/start) * [使用 pm2 管理 Node.js 服務](https://noob.tw/pm2/) * [install pm2 on aws linux](https://juejin.cn/s/install%20pm2%20on%20aws%20linux) * [下載Putty](https://the.earth.li/~sgtatham/putty/latest/w64/putty.exe) * [pm2 - 用法大全](https://tn710617.github.io/zh-tw/pm2/) * [PM2 | hackmd 筆記](https://hackmd.io/@CSIneD0STRmGlODbThwELw/rJJKCn9rp)