我在尝试杀死另一个连续运行的子进程(子进程2)时遇到麻烦。子进程2完成后,我希望子进程1重新开始备份。
我尝试在“ Process.on”下运行子进程1,然后在子进程2的启动时终止该进程,但是由于某些原因,在这些条件下,子进程1不能在启动时运行。我曾尝试运行If / Else语句,但是再次,子进程1不会在启动时运行。如果删除process.on,则可以在启动时运行子进程1,并在命令中激活子进程2,但子进程1不会终止。
var exec = require("child_process").exec;
const execFile = require('child_process').exec;
//Activates Child Process 1 on Startup
process.on('SIGHUP', () => {
execFile('/path/executable1', function (error, stdout, stderr) {
if (error) {
throw error;
return;
}
});
});
if (message === '!exec') {
process.kill(process.pid, 'SIGHUP'); // Trying to kill Child Process 1
//activates Child Process 2
var process = exec('/path/executable2', (error, stdout, stderr) => {
if (error) {
console.error(`exec error: ${error}`);
return;
}
console.log(\`stdout: ${stdout}\`);
console.log(`stderr: ${stderr}`);
});
});
我希望子进程1在引导时启动,并且子进程1在子进程2启动时被终止。理想情况下,一旦子进程2完成,子进程1将重新启动。你们有什么主意吗?