Процесс Nodejs может легко создавать и взаимодействовать с дочерними процессами nodejs во время выполнения. Но есть ли способ, которым процесс Nodejs узнает о других, не дочерних процессах Nodejs, порожденных каким-то другим источником, и взаимодействует с ними?
Я бы предположил, что решение для обнаружения других экземпляров может включать запуск команды ps
и фильтрацию результатов:
let proc = require('child_process').spawn('ps', [], {
cwd: __dirname,
env: process.env
});
(async () => {
let chunks = [];
proc.on('data', chunk => chunks.push(chunk.toString('utf8')));
await new Promise(r => proc.on('exit', r));
let results = chunks.join('');
// TODO: Now process the String `results`, searching for lines
// which seem to describe a Nodejs process. Capture the pids of
// these lines
})();
Общение с pids, обнаруженными таким образом, вероятно, будет совершенно другим процессом.
Можно ли решить эту проблему? Есть ли существующая библиотека, которая делает это? Можно ли это сделать кроссплатформенным способом?