ctrl+c只能关掉一个node服务

在windows 环境 git bash操作中如下问题:
练习first-app,用express搭建一个服务的操作:

我使用npm start 首次启动服务后台显示有两个node进程,ctrl c只能关掉一个服务 如果我再次重新启动服务显示 端口已经在使用,哪个没有关掉的node进程只能强制关掉

如果我使用node ./bin/www 首次启动服务 只会开一个进程并且正常的开关和重启都没问题 我想现在问题集中在为什么使用npm 会启动两个服务这个事情上

这个问题我在github上有关于这个问题的讨论时把git返回到旧的版本,还有就是写一个脚本

#!/usr/bin/env bash

echo killing process on port $1

taskkill //PID netstat -aon | grep $1 | grep -P '(?=LISTENING).*' -o -m1 | grep -P '\d*' -o //F

和alias的方法
删除打开了某个特定端口的进程

alias killport='function _killport(){ lsof -n -i4TCP:$@ | grep LISTEN | awk "{print $2}" | xargs kill};_killport'

用法:

$ killport 3001
这样占用 3001 端口的进程就被杀掉。
说实话我都试了,还没结果,这篇文章希望对同样问题的人有用,

以下都是cmd命令:(默认正在启用的端口号是3000)

可以查询电脑当前所有端口和端口对应的PID

netstat -ano

如果觉得这样端口太多麻烦可以直接:

netstat -aon|findstr 3000

如果想查看是哪个程序在占用整个端口

task|findstr 3000

如果想kill一个端口对应的进程直接使用:

taskkill /pid 9872 /F(加上F可以直接强制关掉)

你可能感兴趣的:(ctrl+c只能关掉一个node服务)