记录一次线上python服务问题的排查
问题:
线上有个windowsServer服务器,为了修改代码(因为代码变动比较频繁)方便起见直接在pycharm上启了python服务,提供给其他服务调用,后面发现pycharm关了,但是后台还是存在一个进程,导致修改代码启服务不生效了。为什么会有两个一模一样的端口服务存在,各位小伙伴请自行查询,在这不做过多解释。
问题出现原因:
pycharm上如果正启动一个服务,在不关闭服务的情况下,直接叉掉pycharm,pycharm会弹窗如下:
解释下上面两个选项的意思,cancel就不说了,大家肯定都懂。
terminate:python程序会终止,然后再退出pycharm
disconnect:pycharm不会终止程序而直接退出pycharm,然后会形成一个后台进程对外提供服务
排查问题的过程中用到的命令:
查看端口号对应的pid
netstat
-
ano | findstr :端口号
会看到两个不同pid对应的3000端口,输出将显示本地和远程地址以及监听状态。最后一列是进程
ID(PID),
如果你只对特定状态的连接感兴趣,比如 LISTENING,你可以进一步过滤输出
netstat
-
ano | findstr LISTENING | findstr :
3000
LISTENING为正在监听的pid
找到了 PID 后,你可以在任务管理器中查找它,或者使用以下命令来获取更多关于这个 PID 的信息
查看pid的详细信息
tasklist
/
fi
"PID eq 你找到的PID号"
这将显示与该 PID 相关联的进程名称,从而可以让你知道哪个应用程序正在使用端口
3000
结束进程
taskkill
/
PID 你找到的PID号
/
F
或
在命令窗中结束进程