hzn-cli
Version:
Open Horizon CLI toolkit helps streamline the process of preparing node agents and perform tasks between orgs environments
45 lines (38 loc) • 1.02 kB
JavaScript
const findProcess = require('find-process');
const cp = require('child_process'),
exec = cp.exec;
let timer;
const find = (name) => {
findProcess('name', name, true)
.then(function (list) {
if(!list.find(exist)) {
clearInterval(timer);
let child = exec('node index.js', {maxBuffer: 1024 * 2000}, (err, stdout, stderr) => {
console.log('restarting node index.js')
console.log('there are %s node process(es)', list.length);
sleep(5000).then(() => {
setCheckInterval(10000);
})
});
child.stdout.pipe(process.stdout);
child.on('data', (data) => {
console.log(data)
})
child.on('error', (err) => {
console.llog(err)
})
}
});
}
const exist = (instance) => {
return instance.cmd === 'node index.js';
}
const setCheckInterval = (ms) => {
timer = setInterval(() => {
find('node');
}, ms);
};
const sleep = (ms) => {
return new Promise(resolve => setTimeout(resolve, ms));
}
find('node');