2015-03-31 60 views
1

以下是pm2 process.json配置文件。該應用程序是使用命令指示pm2在json文件中不啓動多個實例

PM2開始/root/src/sample_v2/deploy-scripts/processes.json

{ 
    "apps" : [{ 
    "name"  : "sample_app_v2", 
    "script"  : "bin/www", 
    "log_date_format" : "YYYY-MM-DD HH:mm Z", 
    "node_args" : "--harmony", 
    "cwd"   : "/root/src/sample_v2", 
    "env": { 
     "NODE_ENV": "production", 
     "AWESOME_SERVICE_API_TOKEN": "xxx", 
     "TZ": "Europe/Amsterdam" 
    } 
    }] 
} 

輸出

盯着
PM2: 2015-03-31 17:58:58: Starting execution sequence in -fork mode- for app name:sample id:10 
PM2: 2015-03-31 17:58:58: App name:sample id:10 online 
sample-10 (out): 2015-02-06 21:38 +04:00: Started...[object Object] 
sample-10 (out): 2015-02-06 21:38 +04:00: mongoclient.connect 
sample-10 (out): 2015-02-06 21:38 +04:00: Started...[object Object] 
sample-10 (out): 2015-02-06 21:38 +04:00: mongoclient.connect 
sample-10 (out): 2015-02-06 21:39 +04:00: Started...[object Object] 
sample-10 (out): 2015-02-06 21:39 +04:00: mongoclient.connect 
sample-10 (out): 2015-02-06 21:39 +04:00: Started...[object Object] 
sample-10 (out): 2015-02-06 21:39 +04:00: mongoclient.connect 
sample-10 (out): 2015-02-06 21:39 +04:00: Started...[object Object] 
sample-10 (out): 2015-02-06 21:39 +04:00: mongoclient.connect 
sample-10 (out): 2015-02-06 21:39 +04:00: Started...[object Object] 
sample-10 (out): 2015-02-06 21:39 +04:00: mongoclient.connect 
sample-10 (out): 2015-02-06 21:39 +04:00: Started...[object Object] 
sample-10 (out): 2015-02-06 21:39 +04:00: mongoclient.connect 
sample-10 (out): 2015-03-31 17:59 +04:00: Started...[object Object] 
sample-10 (err):  at Object.274:1 (cluster.js:594:5) 
sample-10 (err):  at handleResponse (cluster.js:171:41) 
sample-10 (err):  at respond (cluster.js:192:5) 
sample-10 (err):  at handleMessage (cluster.js:202:5) 
sample-10 (err):  at process.emit (events.js:117:20) 
sample-10 (err):  at handleMessage (child_process.js:322:10) 
sample-10 (err):  at child_process.js:396:7 
sample-10 (err):  at process.handleConversion.net.Native.got (child_process.js:91:7) 
sample-10 (err):  at process.<anonymous> (child_process.js:395:13) 
sample-10 (err): TypeError: Cannot read property 'getsockname' of undefined 
sample-10 (err):  at net.js:1083:27 
sample-10 (err):  at Object.274:1 (cluster.js:594:5) 
sample-10 (err):  at handleResponse (cluster.js:171:41) 
sample-10 (err):  at respond (cluster.js:192:5) 
sample-10 (err):  at handleMessage (cluster.js:202:5) 
sample-10 (err):  at process.emit (events.js:117:20) 
sample-10 (err):  at handleMessage (child_process.js:322:10) 
sample-10 (err):  at child_process.js:396:7 
sample-10 (err):  at process.handleConversion.net.Native.got (child_process.js:91:7) 
sample-10 (err):  at process.<anonymous> (child_process.js:395:13) 

看起來像這個過程試圖啓動次。如何問pm2不啓動多個實例?

編輯2:

添加屬性

"instances" : 1 

的JSON文件按預期工作,並開始只有一個進程。但它拋出警告

[WARN] You should not use the cluster_mode (-i) in production, it's still a beta feature. A front HTTP load balancer or interaction with NGINX will be developped in the future. 

如何開始在叉模式過程中,仍然有一個實例。

+0

對我來說,它看起來像它的唯一一次首發。但是在某個地方有一個錯誤。默認模式是'fork_mode',所以它只會啓動你的進程的一個實例。 – soyuka 2015-04-01 05:53:36

+0

在應用程序的開始處打印文本** mongoclient.connect **。在這種情況下,它打印10次。如果只啓動一次,它只會打印一次。 – 2015-04-01 20:33:34

+0

@soyuka也請看這個問題的編輯。 – 2015-04-01 20:46:45

回答

2

在JSON設置指定exec_mode和實例鍵:

{ 
    "apps" : [{ 
    "exec_mode": "fork", 
    "instances": 1 
    }] 
}