我有一个需要全天候运行的脚本,所以我一直使用pm2运行它。但是,我也希望能够偶尔检查脚本。在将其作为守护进程运行之前,我将其设置为读取stdin,但对于守护进程,这不起作用。有没有一种简单的方法来执行此操作并运行守护进程?
我知道这与守护进程的本质相矛盾,但我需要脚本连续运行并且用户输入有限。
答案 0 :(得分:0)
可以使用process.spawn
完成,以下示例摘自本书:Professional Node.js
创建名为plus_one.js的文件:
UPDATE products SET quantityInStock=quantityInStock-1 WHERE productCode=':productCode
您可以通过调用以下方式运行此简单程序:
// unpause the stdin stream
process.stdin.resume();
process.stdin.on('data', function(data) {
var number;
try {
// parse the input data into a number
number = parseInt(data.toString(), 10);
// increment by one
number += 1;
// output the number
process.stdout.write(number + "\n");
} catch(err) {
process.stderr.write(err.message + "\n");
}
});
创建一个名为plus_one_test.js的文件:
$ node plus_one.js
在这里,您将在第1行到第4行启动+1应用作为子进程。 然后使用setInterval函数每秒执行以下操作: 创建小于10,000的随机自然数。将该数字作为字符串发送到子进程。等待子进程用字符串回复。