process.js 4.39 KB
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.getProcessIds = getProcessIds;
exports.killProcess = killProcess;

require("source-map-support/register");

var _teen_process = require("teen_process");

async function getProcessIds(appName) {
  let pids;

  try {
    let {
      stdout
    } = await (0, _teen_process.exec)('pgrep', ['-x', appName]);
    pids = stdout.trim().split('\n').map(pid => parseInt(pid, 10));
  } catch (err) {
    if (parseInt(err.code, 10) !== 1) {
      throw new Error(`Error getting process ids for app '${appName}': ${err.message}`);
    }

    pids = [];
  }

  return pids;
}

async function killProcess(appName, force = false) {
  let pids = await getProcessIds(appName);

  if (pids.length === 0) {
    return;
  }

  try {
    let args = force ? ['-9'] : [];
    args.push('-x', appName);
    await (0, _teen_process.exec)('pkill', args);
  } catch (err) {
    if (parseInt(err.code, 10) !== 1) {
      throw new Error(`Error killing app '${appName}' with pkill: ${err.message}`);
    }
  }
}require('source-map-support').install();


//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9wcm9jZXNzLmpzIl0sIm5hbWVzIjpbImdldFByb2Nlc3NJZHMiLCJhcHBOYW1lIiwicGlkcyIsInN0ZG91dCIsInRyaW0iLCJzcGxpdCIsIm1hcCIsInBpZCIsInBhcnNlSW50IiwiZXJyIiwiY29kZSIsIkVycm9yIiwibWVzc2FnZSIsImtpbGxQcm9jZXNzIiwiZm9yY2UiLCJsZW5ndGgiLCJhcmdzIiwicHVzaCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOztBQVdBLGVBQWVBLGFBQWYsQ0FBOEJDLE9BQTlCLEVBQXVDO0FBQ3JDLE1BQUlDLElBQUo7O0FBQ0EsTUFBSTtBQUNGLFFBQUk7QUFBQ0MsTUFBQUE7QUFBRCxRQUFXLE1BQU0sd0JBQUssT0FBTCxFQUFjLENBQUMsSUFBRCxFQUFPRixPQUFQLENBQWQsQ0FBckI7QUFDQUMsSUFBQUEsSUFBSSxHQUFHQyxNQUFNLENBQUNDLElBQVAsR0FBY0MsS0FBZCxDQUFvQixJQUFwQixFQUEwQkMsR0FBMUIsQ0FBK0JDLEdBQUQsSUFBU0MsUUFBUSxDQUFDRCxHQUFELEVBQU0sRUFBTixDQUEvQyxDQUFQO0FBQ0QsR0FIRCxDQUdFLE9BQU9FLEdBQVAsRUFBWTtBQUNaLFFBQUlELFFBQVEsQ0FBQ0MsR0FBRyxDQUFDQyxJQUFMLEVBQVcsRUFBWCxDQUFSLEtBQTJCLENBQS9CLEVBQWtDO0FBQ2hDLFlBQU0sSUFBSUMsS0FBSixDQUFXLHNDQUFxQ1YsT0FBUSxNQUFLUSxHQUFHLENBQUNHLE9BQVEsRUFBekUsQ0FBTjtBQUNEOztBQUNEVixJQUFBQSxJQUFJLEdBQUcsRUFBUDtBQUNEOztBQUNELFNBQU9BLElBQVA7QUFDRDs7QUFFRCxlQUFlVyxXQUFmLENBQTRCWixPQUE1QixFQUFxQ2EsS0FBSyxHQUFHLEtBQTdDLEVBQW9EO0FBQ2xELE1BQUlaLElBQUksR0FBRyxNQUFNRixhQUFhLENBQUNDLE9BQUQsQ0FBOUI7O0FBQ0EsTUFBSUMsSUFBSSxDQUFDYSxNQUFMLEtBQWdCLENBQXBCLEVBQXVCO0FBRXJCO0FBQ0Q7O0FBRUQsTUFBSTtBQUNGLFFBQUlDLElBQUksR0FBR0YsS0FBSyxHQUFHLENBQUMsSUFBRCxDQUFILEdBQVksRUFBNUI7QUFDQUUsSUFBQUEsSUFBSSxDQUFDQyxJQUFMLENBQVUsSUFBVixFQUFnQmhCLE9BQWhCO0FBQ0EsVUFBTSx3QkFBSyxPQUFMLEVBQWNlLElBQWQsQ0FBTjtBQUNELEdBSkQsQ0FJRSxPQUFPUCxHQUFQLEVBQVk7QUFDWixRQUFJRCxRQUFRLENBQUNDLEdBQUcsQ0FBQ0MsSUFBTCxFQUFXLEVBQVgsQ0FBUixLQUEyQixDQUEvQixFQUFrQztBQUNoQyxZQUFNLElBQUlDLEtBQUosQ0FBVyxzQkFBcUJWLE9BQVEsaUJBQWdCUSxHQUFHLENBQUNHLE9BQVEsRUFBcEUsQ0FBTjtBQUNEO0FBQ0Y7QUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWMgfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuXG5cbi8qXG4gKiBFeGl0IFN0YXR1cyBmb3IgcGdyZXAgYW5kIHBraWxsIChgbWFuIHBraWxsYClcbiAqICAwLiBPbmUgb3IgbW9yZSBwcm9jZXNzZXMgbWF0Y2hlZCB0aGUgY3JpdGVyaWEuXG4gKiAgMS4gTm8gcHJvY2Vzc2VzIG1hdGNoZWQuXG4gKiAgMi4gU3ludGF4IGVycm9yIGluIHRoZSBjb21tYW5kIGxpbmUuXG4gKiAgMy4gRmF0YWwgZXJyb3I6IG91dCBvZiBtZW1vcnkgZXRjLlxuICovXG5cbmFzeW5jIGZ1bmN0aW9uIGdldFByb2Nlc3NJZHMgKGFwcE5hbWUpIHtcbiAgbGV0IHBpZHM7XG4gIHRyeSB7XG4gICAgbGV0IHtzdGRvdXR9ID0gYXdhaXQgZXhlYygncGdyZXAnLCBbJy14JywgYXBwTmFtZV0pO1xuICAgIHBpZHMgPSBzdGRvdXQudHJpbSgpLnNwbGl0KCdcXG4nKS5tYXAoKHBpZCkgPT4gcGFyc2VJbnQocGlkLCAxMCkpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAocGFyc2VJbnQoZXJyLmNvZGUsIDEwKSAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFcnJvciBnZXR0aW5nIHByb2Nlc3MgaWRzIGZvciBhcHAgJyR7YXBwTmFtZX0nOiAke2Vyci5tZXNzYWdlfWApO1xuICAgIH1cbiAgICBwaWRzID0gW107XG4gIH1cbiAgcmV0dXJuIHBpZHM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGtpbGxQcm9jZXNzIChhcHBOYW1lLCBmb3JjZSA9IGZhbHNlKSB7XG4gIGxldCBwaWRzID0gYXdhaXQgZ2V0UHJvY2Vzc0lkcyhhcHBOYW1lKTtcbiAgaWYgKHBpZHMubGVuZ3RoID09PSAwKSB7XG4gICAgLy8gdGhlIHByb2Nlc3MgaXMgbm90IHJ1bm5pbmdcbiAgICByZXR1cm47XG4gIH1cblxuICB0cnkge1xuICAgIGxldCBhcmdzID0gZm9yY2UgPyBbJy05J10gOiBbXTtcbiAgICBhcmdzLnB1c2goJy14JywgYXBwTmFtZSk7XG4gICAgYXdhaXQgZXhlYygncGtpbGwnLCBhcmdzKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgaWYgKHBhcnNlSW50KGVyci5jb2RlLCAxMCkgIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRXJyb3Iga2lsbGluZyBhcHAgJyR7YXBwTmFtZX0nIHdpdGggcGtpbGw6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCB7IGdldFByb2Nlc3NJZHMsIGtpbGxQcm9jZXNzIH07XG4iXSwiZmlsZSI6ImxpYi9wcm9jZXNzLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=