今天在用pm2部署時遇到一個問題,修改pm2配置文件後不生效。個人配置文件用的是json格式的(ecosystem.json),增長日誌路徑後重啓,日誌路徑仍是原來的路徑。node
//ecosystem.json 配置文件
{
"name" : "djxt",
"script" : "./bin/www.js",
"cwd" : "./",
"watch": [
"bin",
"routers"
],
"ignore_watch" : [
"node_modules",
"logs",
"public"
],
"watch_options": {
"followSymlinks": false
},
"env": {
"NODE_ENV": "production"
},
"env_test": {
"NODE_ENV": "testing"
}
}
複製代碼
上面的代碼是剛開始的配置,開啓pm2後,這時執行 pm2 list 可看到以下:json
再根據id執行 pm2 log 0 看到id爲0的進程日誌信息,以下: 能夠看到這時日誌輸出的默認路徑。接下來增長日誌路徑bash
//ecosystem.json 配置文件
{
"name" : "djxt",
"script" : "./bin/www.js",
"cwd" : "./",
"watch": [
"bin",
"routers"
],
"ignore_watch" : [
"node_modules",
"logs",
"public"
],
"watch_options": {
"followSymlinks": false
},
"env": {
"NODE_ENV": "production"
},
"env_test": {
"NODE_ENV": "testing"
},
"error" : "./logs/app-err.log", //錯誤日誌路徑
"output" : "./logs/app-out.log", //正常日誌路徑
"merge_logs": true, // 設置追加日誌而不是新建日誌
"log_date_format": "YYYY-MM-DD HH:mm:ss" // 指定日誌文件的時間格式
}
複製代碼
注意,這時候執行 pm2 reload 0 後配置是不會生效的,須要將pm2進程殺掉從新開啓才能生效。 執行 pm2 delete 0 (這裏的0是對呀pm2列表的id,若是要將所有進程關掉,能夠把0改爲all),再從新開啓pm2進程,以下圖:app
此時的日誌路徑已經修改成咱們配置文件裏所指定的路徑了。