经常启动http服务器的时候,发现起不来,比如Tomcat,查看日志才发现提示端口已经被占用了。
这里有几个命令比较重要,
查找被占用的进程
查看 tomcat是否启动了:
ps -aux | grep tomcat
结果没有发现tomcat进程:
root@ubuntu:/data/server/wwwroot/tolearncode/protected/controllers# ps -aux | grep tomcat
root 22623 0.0 0.0 14224 976 pts/0 S+ 17:30 0:00 grep --color=auto tomcat
查看一下所有的进程和端口使用情况。
netstat –apn
显示如下:
root@ubuntu:/data/server/wwwroot/tolearncode/protected/controllers# netstat –apn
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 192.168.60.127:51706 192.168.60.127:mysql TIME_WAIT
tcp 0 0 192.168.60.127:51708 192.168.60.127:mysql TIME_WAIT
tcp 0 0 192.168.60.127:27017 192.168.40.34:60734 ESTABLISHED
tcp 0 0 192.168.60.127:27017 192.168.40.34:49490 ESTABLISHED
tcp 0 0 192.168.60.127:51716 192.168.60.127:mysql TIME_WAIT
tcp 0 0 192.168.60.127:ssh 192.168.40.34:54673 ESTABLISHED
tcp 0 0 192.168.60.127:51710 192.168.60.127:mysql TIME_WAIT
tcp 0 0 192.168.60.127:51696 192.168.60.127:mysql TIME_WAIT
可以查看8080端口被谁占用了,如果知道被那个进程占用了,
进一步使用命令:
ps -aux | grep pid #查看
端口过滤8080
直接使用 netstat -anp | grep portno
即:
netstat –apn | grep 8080
更多教程:阿猫学编程