Node.js process.kill 导致进程退出失败 (1)
Node.js process.kill is causing an unsuccessful process exit (1)
我是 node.js 的新手,按照 node.js documentation about process signals 我编写了以下代码
const express = require("express");
const app = express();
app.get("/", (req, res) => {
res.send("Hi!");
});
const server = app.listen(3000, () => console.log("Server ready"));
process.on("SIGTERM", () => {
console.log("Handler started");
server.close(() => {
console.log("Process terminated");
});
});
for (let i = 0; i < 10; i++) {
if (i === 5) {
process.kill(process.pid, "SIGTERM");
} else {
console.log(i);
}
}
但在终端中 运行 运行此应用后,输出 (node app.js
) 如下:
0
1
2
3
4
处理程序没有 运行
在 运行ning process.kill
.
时,调试后进程以代码 = 1 退出
如何调试才能知道确切原因?我无法使用 try catch 块打印错误
Why "Handler started" and "Process terminated" are not printed to the
console ?
当我运行正在执行以下脚本时,我正在控制台上打印一些东西。我认为你应该 运行 下面的脚本并测试它:
const express = require('express')
const app = express()
app.get('/', (req, res) => {
res.send('Hi!')
})
const server = app.listen(3000, () => console.log('Server ready'))
process.on('SIGTERM', () => {
server.close(() => {
console.log('Process terminated')
})
});
for(let i = 0; i < 10; i ++){
if(i === 5) {
process.kill(process.pid, 'SIGTERM')
}else{
console.log(i)
}
}
运行执行上述脚本后的结果:
AV:newTest11 apoorvachikara$ node test.js
0
1
2
3
4
6
7
8
9
Server ready
Process terminated
AV:newTest11 apoorvachikara$
您正在 运行ning 的脚本似乎有一些问题。
原来 windows os 不是 POSIX 所以它不使用 unix 信号。
最好的办法是使用 linux (WSL2) 的 windows 子系统在 unix 环境中使用 windows 进行开发,或者在 unix os
我是 node.js 的新手,按照 node.js documentation about process signals 我编写了以下代码
const express = require("express");
const app = express();
app.get("/", (req, res) => {
res.send("Hi!");
});
const server = app.listen(3000, () => console.log("Server ready"));
process.on("SIGTERM", () => {
console.log("Handler started");
server.close(() => {
console.log("Process terminated");
});
});
for (let i = 0; i < 10; i++) {
if (i === 5) {
process.kill(process.pid, "SIGTERM");
} else {
console.log(i);
}
}
但在终端中 运行 运行此应用后,输出 (node app.js
) 如下:
0
1
2
3
4
处理程序没有 运行
在 运行ning process.kill
.
如何调试才能知道确切原因?我无法使用 try catch 块打印错误
Why "Handler started" and "Process terminated" are not printed to the console ?
当我运行正在执行以下脚本时,我正在控制台上打印一些东西。我认为你应该 运行 下面的脚本并测试它:
const express = require('express')
const app = express()
app.get('/', (req, res) => {
res.send('Hi!')
})
const server = app.listen(3000, () => console.log('Server ready'))
process.on('SIGTERM', () => {
server.close(() => {
console.log('Process terminated')
})
});
for(let i = 0; i < 10; i ++){
if(i === 5) {
process.kill(process.pid, 'SIGTERM')
}else{
console.log(i)
}
}
运行执行上述脚本后的结果:
AV:newTest11 apoorvachikara$ node test.js
0
1
2
3
4
6
7
8
9
Server ready
Process terminated
AV:newTest11 apoorvachikara$
您正在 运行ning 的脚本似乎有一些问题。
原来 windows os 不是 POSIX 所以它不使用 unix 信号。
最好的办法是使用 linux (WSL2) 的 windows 子系统在 unix 环境中使用 windows 进行开发,或者在 unix os