Ejemplo n.º 1
0
api.restartApp = function (appname, callback) {

    var app = api.getAppInfo(appname)
    if (!app) {
        return abort(ERRORS.NOT_FOUND, callback, { appname: appname })
    }

    Satan.executeRemote('getMonitorData', {}, function (err, list) {
        if (err) return callback(err)
        var runningProcs = findInList(appname, list)
        if (!runningProcs) {
            return abort(ERRORS.NOT_RUNNING, callback, { appname: appname })
        } else {
            async.map(runningProcs, restart, function (err) {
                if (err) return callback(err)
                var l = runningProcs.length
                callback(
                    null,
                    appname.yellow + ' restarted.' +
                    (l > 1 ? (' (' + l + ' instances)').grey : '')
                )
            })
        }
    })
}
Ejemplo n.º 2
0
api.stopApp = function (appname, callback) {

    var app = api.getAppInfo(appname)
    if (!app) {
        return abort(ERRORS.NOT_FOUND, callback, { appname: appname })
    }

    Satan.executeRemote('getMonitorData', {}, function (err, list) {
        if (err) return callback(err)
        var runningProcs = findInList(appname, list)
        if (!runningProcs) {
            callback(null, appname.yellow + ' is not running.')
        } else {
            async.map(runningProcs, function (proc, done) {
                Satan.executeRemote('stopProcessId', proc.pm_id, function (err) {
                    if (err) return done(err)
                    Satan.executeRemote('deleteProcessId', proc.pm_id, done)
                })
            }, function (err) {
                if (err) return callback(err)
                var l = runningProcs.length
                callback(
                    null,
                    appname.yellow + ' stopped.' +
                    (l > 1 ? (' (' + l + ' instances)').grey : '')
                )
            })
        }
    })
}
Ejemplo n.º 3
0
 fs.exists(app.script, function (exists) {
     if (!exists) {
         return abort(ERRORS.NO_SCRIPT, callback, { appname: appname, script: app.script })
     }
     debug('checking if app is already running...')
     Satan.executeRemote('findByFullPath', app.script, function (err, procs) {
         if (err) return callback(err)
         if (procs) {
             if (procs[0].pm2_env.status == pm2cst.STOPPED_STATUS ||
                 procs[0].pm2_env.status == pm2cst.STOPPING_STATUS ||
                 procs[0].pm2_env.status == pm2cst.ERRORED_STATUS) {
                 return pm2._restart(procs[0].pm2_env.name, callback)
             } else {
                 return callback(null, appname.yellow + ' already running.')
             }
         } else {
             var conf = prepareConfig(app)
             if (conf instanceof Error) {
                 return callback(conf)
             }
             debug('attempting to start app...')
             Satan.executeRemote('prepare', conf, function (err) {
                 if (err) return callback(err)
                 callback(null, appname.yellow + ' running on ' + (app.port || 'unknown port'))
             })
         }
     })
 })
Ejemplo n.º 4
0
api.restartAllApps = function (callback) {
    Satan.executeRemote('getMonitorData', {}, function (err, list) {
        if (err) return callback(err)
        var runningProcs = []
        list.forEach(function (proc) {
            if (proc.pm2_env.name in globalConfig.apps) {
                runningProcs.push(proc)
            }
        })
        async.map(runningProcs, restart, function (err, msgs) {
            callback(err, msgs.map(function (msg) {
                return 'instance of ' + msg
            }))
        })
    })
}
Ejemplo n.º 5
0
api.listApps = function (callback) {
    var appList = Object.keys(globalConfig.apps)
    if (!appList.length) {
        return process.nextTick(function () {
            callback(null, [])
        })
    }
    Satan.executeRemote('getMonitorData', {}, function (err, list) {
        if (err) return callback(err)
        callback(null, appList.map(function (appname) {
            var app = api.getAppInfo(appname)
            app.instances = findInList(appname, list)
            app.broken = isBroken(app)
            return formatter.format(app)
        }))
    })
}
Ejemplo n.º 6
0
function restart (app, callback) {
    Satan.executeRemote('restartProcessId', { id: app.pm_id }, function (err) {
        if (err) return callback(err)
        callback(null, app.pm2_env.name.yellow + ' restarted')
    })
}
Ejemplo n.º 7
0
 Satan.executeRemote('stopProcessId', proc.pm_id, function (err) {
     if (err) return done(err)
     Satan.executeRemote('deleteProcessId', proc.pm_id, done)
 })
Ejemplo n.º 8
0
 async.map(runningProcs, function (proc, done) {
     Satan.executeRemote('stopProcessId', proc.pm_id, function (err) {
         if (err) return done(err)
         Satan.executeRemote('deleteProcessId', proc.pm_id, done)
     })
 }, function (err) {