mirror of
https://github.com/arduino/arduino-ide.git
synced 2025-04-28 01:07:18 +00:00

From now on, we spawn a detached process that will periodically check whether the parent Theia the process is alive, if no, terminates the daemon. Signed-off-by: Akos Kitta <kittaakos@typefox.io>
18 lines
530 B
TypeScript
18 lines
530 B
TypeScript
import * as psTree from 'ps-tree';
|
|
const kill = require('tree-kill');
|
|
const [theiaPid, daemonPid] = process.argv.slice(2).map(id => Number.parseInt(id, 10));
|
|
|
|
setInterval(() => {
|
|
try {
|
|
// Throws an exception if the Theia process doesn't exist anymore.
|
|
process.kill(theiaPid, 0);
|
|
} catch {
|
|
psTree(daemonPid, function (_, children) {
|
|
for (const { PID } of children) {
|
|
kill(PID);
|
|
}
|
|
kill(daemonPid, () => process.exit());
|
|
});
|
|
}
|
|
}, 1000);
|