Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
new Promise((resolve, reject) => {
psTree(subprocess.pid, (err, children) => {
if (err) reject(err)
children.map(child => {
// each child has the properties: COMMAND, PPID, PID, STAT
logger(logPrefix, 'killing child: ', child)
process.kill(child.PID, killSignal)
})
resolve()
})
})
const pkillSiad = () => new Promise((resolve, reject) => {
psTree(process.pid, (err, children) => {
if (err) {
reject(err)
}
children.forEach((child) => {
const commString = child.COMM ? 'COMM' : 'COMMAND'
if (child[commString].includes('siad') || child[commString].includes('siad.exe')) {
if (process.platform === 'win32') {
spawn('taskkill', ['/pid', child.PID, '/f', '/t'])
} else {
try {
process.kill(child.PID, 'SIGKILL')
} catch (e) {
console.log('Error SIGKILL', e)
}
}
}
const getSiadChild = (pid) => new Promise((resolve, reject) => {
psTree(pid, (err, children) => {
if (err) {
reject(err)
}
children.forEach((child) => {
const commString = child.COMM ? 'COMM' : 'COMMAND'
if (child[commString].includes('siad') || child[commString].includes('siad.exe')) {
resolve({exists: true, pid: child.PID})
}
})
resolve({exists: false})
})
})
return new Promise((resolve, reject) => {
if (process.platform !== 'win32') {
psTree(this.process.pid, (err, kids) => {
if (err) {
console.error('ps tree error', err)
reject(new pcErrors.KillServiceError('waybak', 'psTree', err))
} else {
if (kids.length > 0) {
let dukeNukem = cp.spawn('kill', ['-9'].concat(kids.map(p => p.PID)), {
shell: true,
stdio: ['ignore', 'ignore', 'ignore']
})
dukeNukem.unref()
let bail = setTimeout(() => {
reject(new pcErrors.FailedToKillServiceTimeoutError('waybak', 'kill -9 pid'))
}, 10000)
this.on('wayback-restart-exit', (code) => {
clearTimeout(bail)
console.log('we have the restart exit', code)
const killPid = pid => new Promise((resolve, reject) => {
if (process.platform !== 'win32') {
psTree(pid, (err, kids) => {
if (err) {
console.error('ps tree error', err)
process.kill(pid, 'SIGTERM')
} else {
if (kids.length > 0) {
let dukeNukem = cp.spawn('kill', ['-9'].concat(kids.map(p => p.PID)), {
shell: true,
stdio: ['ignore', 'ignore', 'ignore']
})
dukeNukem.on('exit', () => {
resolve()
})
} else {
process.kill(pid, 'SIGTERM')
resolve()
}
return new Promise((resolve, reject) => {
if (process.platform !== 'win32') {
psTree(this.process.pid, (err, kids) => {
if (err) {
console.error('ps tree error', err)
reject(new pcErrors.KillServiceError('heritrix', 'psTree', err))
} else {
if (kids.length > 0) {
let dukeNukem = cp.spawn('kill', ['-9'].concat(kids.map(p => p.PID)), {
shell: true,
stdio: ['ignore', 'ignore', 'ignore']
})
dukeNukem.on('exit', () => {
resolve()
})
} else {
process.kill(this.process.pid, 'SIGTERM')
resolve()
}
return new Promise((resolve, reject) => {
if (killTree) {
psTree(this.pid, (err, children) => {
[this.pid].concat(children.map(p => p.PID)).forEach(tpid => {
try {
process.kill(tpid, signal);
} catch (ex) {
reject(this.emitError(ex));
}
});
resolve();
});
} else {
try {
process.kill(this.pid, signal);
} catch (ex) {
reject(ex);
}
resolve();
function terminate(pid, cb) {
psTree(pid, (err, children) => {
spawn('kill', ['-9'].concat(children.map(p => p.PID)));
if (typeof cb === 'function') return cb(err);
});
}
_killProcess: function (signal) {
if (this.process) {
Q.denodeify(psTree.bind(psTree))(this.pid)
.then(this._onProcessTree.bind(this))
this.process.kill(signal || this._stopSignal);
}
},