转载作者的作者的文章(套娃~):
原文链接:https://blog.csdn.net/wzl_lzw/article/details/84196085
问题:
启动http服务时,发现端口被占用,于是乎:
第一:netstat -apn | grep 端口号
(这里的端口号,替换成你被占用的那个端口号,比如Tomcat是8080,namenode是8020之类的,还有最好用root来使用这些系统级的命令)
然后得到这样的结果:
最后一排其实就pid,然后我们通过kill -9 pid 就可以杀掉对应的进程(例如,kill -9 4438)
但是kill前,我们还是要确定下到底这个哪里开的进程能不能随便杀掉,所以。。。
netstat 参数:
-a或–all:显示所有连线中的Socket。
-n:直接使用IP地址,而不通过域名服务器。
-p:显示正在使用Socket的程序识别码和程序名称。
第二:ps -ef | grep 端口号
这样就可以看看你这个进程到底是谁开的,在哪里开的,如下图:
这边显示了两行,每行都是以用户名开头的,第一个就是普通用户开启的namenode进程,第二个是root用户执行的ps -ef | grep 4438这个命令生成的,就好像我们每次jps的时候,就有jps这个进程。
ps 参数:
-e:显示所有进程,环境变量
-f :全格式
第三:kill -9 端口号
ko ~