getProcessManager(name) {
        if (!name || name === 'local') {
            return {Class: require('./utils/local-process'), name: 'local'};
        }

        const availableProcessManagers = this._getAvailableProcessManagers();

        if (!availableProcessManagers[name]) {
            this.ui.log(`Process manager '${name}' does not exist, defaulting to 'local'`, 'yellow');
            return {Class: require('./utils/local-process'), name: 'local'};
        }

        const Klass = require(availableProcessManagers[name]);
        const valid = ProcessManager.isValid(Klass);

        if (valid !== true) {
            const msg = valid !== false ? `missing required fields: ${valid.join(', ')}` : 'does not inherit from base class';
            this.ui.log(`Process manager '${name}' ${msg}, defaulting to 'local'`, 'yellow');
            return {Class: require('./utils/local-process'), name: 'local'};
        }

        if (!Klass.willRun()) {
            this.ui.log(`Process manager '${name}' will not run on this system, defaulting to 'local'`, 'yellow');
            return {Class: require('./utils/local-process'), name: 'local'};
        }

        return {Class: Klass, name: name};
    }
Get the process manager by name. Process manager classes can come
from any one of the loaded extensions. If no process manager is found for
the given name or the located process manager is invalid, the local
process manager is returned

@param {string} name Name of the process manager
@return {Object} Object with two properties
 - Class: Class of the process manager
 - Name: Name of the process manager as given by the extension
@method getProcessManager
@public