process.js
4.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
"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=