diff --git a/lib/API.js b/lib/API.js index 9f2d9f1d..e9f88429 100644 --- a/lib/API.js +++ b/lib/API.js @@ -202,6 +202,15 @@ API.prototype.disconnect = API.prototype.close = function(cb) { }); }; +/** + * Launch modules + * + * @param {Function} cb callback once pm2 has launched modules + */ +API.prototype.launchModules = function(cb) { + Modularizer.launchAll(this, cb); +}; + /** * Enable bus allowing to retrieve various process event * like logs, restarts, reloads diff --git a/test/programmatic/api.mocha.js b/test/programmatic/api.mocha.js index 37926a01..0ccd800b 100644 --- a/test/programmatic/api.mocha.js +++ b/test/programmatic/api.mocha.js @@ -269,4 +269,37 @@ describe('API checks', function() { }); }); + describe('Launch modules', function() { + var Modularizer = require('../../lib/API/Modules/Modularizer'); + var module = 'pm2-server-monit'; + + after(function(done) { + Modularizer.uninstall(PM2, module, done); + }); + + it('Should start up modules', function(done) { + this.timeout(5000); + PM2.connect(true, function(err) { + should(err).be.null(); + + Modularizer.install(PM2, module, function() { + PM2.stop(module, function() { + should(err).be.null(); + + PM2.launchModules(function(err) { + should(err).be.null(); + + PM2.list(function(err, list) { + should(err).be.null(); + should(list[0].name).eql(module); + should(list[0].pm2_env.status).eql('online'); + done(); + }); + }); + }); + }); + }); + }); + }); + });