节点的JS ctrl + C不停止服务器(启动服务器后“npm开始”)
当我在命令行中使用node app.js
启动我的服务器(使用Git Bash)时,我可以使用ctrl + C来停止它。
在我的package.json文件中,我得到了这个启动脚本,它允许我使用命令npm start
来启动服务器:
"scripts": { "start": "node app" },
当我这样做时,服务器正常启动:
$ npm start > nodekb@1.0.0 start C:\Projects\nodekb > node app.js Server started on port 3000...
但是当我ctrl + C现在,服务器不会停止(节点进程仍然在任务pipe理器中)。 这意味着当我尝试再次npm start
,出现错误,因为端口3000仍在使用中。
我在YouTube上跟随一个教程( 带有时间戳的video ),当这个人按Ctrl + C,然后运行npm start
再次npm start
,它正常工作。
任何想法为什么我的服务器进程不停止,当我使用CTRL + C?
我的app.js文件,如果需要的话:
var express = require("express"); var path = require("path"); //Init app var app = express(); //Load View Engine app.set("views", path.join(__dirname, "views")); app.set("view engine", "pug"); //Home Route app.get("/", function(req, res) { res.render("index", { title: "Hello" }); }); //Add route app.get("/articles/add", function (req, res) { res.render("add_article", { title: "Add Article" }); }); //Start server app.listen(3000, function() { console.log("Server started on port 3000..."); });
谢谢!
我试了一下正常的Windows CMD,它的工作原理应该在那里。 看起来这是git bash的问题。
这很可能只是您的控制台没有准确地将命令发送到进程的问题。 这是很常见的,特别是使用第三方控制台如cmdr / conemu时。
解决scheme?
只需按Ctrl + C几次,直到它closures:P
有时节点进程挂起。 使用ps
检查进程ID您可能需要grep for节点,然后使用kill -9 [PID]
来kill -9 [PID]
进程。
我在Windows机器上使用git bash,并在上个月左右遇到了这个问题。
我仍然不知道是什么原因造成的,但我find了另一种方法来阻止它。
- 打开任务pipe理器
- 进入“ 进程”选项卡
- findnode.exe ,然后按结束进程
这使我能够迅速停止服务器。