From eb39c5f697ff3cd6f0368ef5c01853acaaef7812 Mon Sep 17 00:00:00 2001 From: Unitech Date: Fri, 16 Feb 2018 14:00:14 +0100 Subject: [PATCH] feature: allow to set deep monitoring via environment (PM2_DEEP_MONITORING=true on start/restart) --- lib/API.js | 8 ++++++++ test/bash/options-via-env.sh | 24 ++++++++++++++++++++++++ test/pm2_behavior_tests.sh | 2 ++ 3 files changed, 34 insertions(+) create mode 100644 test/bash/options-via-env.sh diff --git a/lib/API.js b/lib/API.js index bcb5073bc..59bc227f1 100644 --- a/lib/API.js +++ b/lib/API.js @@ -668,6 +668,10 @@ API.prototype._startScript = function(script, opts, cb) { else app_conf.exec_mode = 'fork'; + // Options set via environment variables + if (process.env.PM2_DEEP_MONITORING) + app_conf.deep_monitoring = true; + if (typeof app_conf.name == 'function'){ delete app_conf.name; } @@ -1450,6 +1454,10 @@ API.prototype._handleAttributeUpdate = function(opts) { delete appConf.watch } + // Options set via environment variables + if (process.env.PM2_DEEP_MONITORING) + appConf.deep_monitoring = true; + // Force deletion of defaults values set by commander // to avoid overriding specified configuration by user if (appConf.treekill === true) diff --git a/test/bash/options-via-env.sh b/test/bash/options-via-env.sh new file mode 100644 index 000000000..c2049f509 --- /dev/null +++ b/test/bash/options-via-env.sh @@ -0,0 +1,24 @@ + +#!/usr/bin/env bash + +SRC=$(cd $(dirname "$0"); pwd) +source "${SRC}/include.sh" + +cd $file_path + +# With start +$pm2 start echo.js +should 'should deep_monitoring' 'deep_monitoring' 0 + +$pm2 delete all + +PM2_DEEP_MONITORING=true $pm2 start echo.js +should 'should deep_monitoring' 'deep_monitoring' 1 + +$pm2 delete all + +# With restart +$pm2 start echo.js +should 'should deep_monitoring' 'deep_monitoring' 0 +PM2_DEEP_MONITORING=true $pm2 restart echo +should 'should deep_monitoring' 'deep_monitoring' 1 diff --git a/test/pm2_behavior_tests.sh b/test/pm2_behavior_tests.sh index da98dfadd..6b1fa6306 100644 --- a/test/pm2_behavior_tests.sh +++ b/test/pm2_behavior_tests.sh @@ -23,6 +23,8 @@ bash ./test/bash/pm2-dev.sh spec "pm2-dev" bash ./test/bash/pm2-runtime.sh spec "pm2-runtime" +bash ./test/bash/options-via-env.sh +spec "set option via environment" bash ./test/bash/startup.sh spec "upstart startup test" bash ./test/bash/dump.sh