经常在启动一个程序会碰到端口被占用,这里讲一下怎么查看端口是否被占用,及哪个程序占用,怎么Kill掉已占用端口的程序
?
1、lsof -i:port
port为端口号
?
[root@slave /data/spark-1.4.0-bin-cdh4]# lsof -i:8080
COMMAND ? PID USER ? FD ? TYPE ? ?DEVICE SIZE/OFF NODE NAME
impalad 11978 ?mqq ?150u ?IPv4 549847837 ? ? ?0t0 ?TCP *:webcache (LISTEN)
?
通过上面命令可以查看到8080端口被impalad这个程序占用,进程ID为:11978
如要杀掉该进程,可以执行:
kill -9 11978将该程序杀掉
?
2、通过netstat 和 ps 两个命令联合起来看占用端口的程序及进程ID
[root@slave /data/spark-1.4.0-bin-cdh4]# netstat -apn|grep 8080 ?
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:8080 ? ? ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? ? ? LISTEN ? ? ?11978/impalad ? ? ??
tcp ? ? ? ?0 ? ? ?0 192.168.209.16:53501 ? ? ? ? ?192.168.209.19:8080 ? ? ? ? ? TIME_WAIT ? - ? ? ?
?
可以看到8080已被impalad占用,并且进程ID为:11978,再通过下面命令可以看到该程序的路径
?
[root@slave /data/spark-1.4.0-bin-cdh4]# ps -elf|grep impalad
0 S mqq ? ? ?11978 ? ? 1 ?9 ?80 ? 0 - 15906542 futex_ Jun25 ? ? ? 2-01:23:55 /usr/lib/impala/sbin/impalad -log_dir=/data/log/impala -catalog_service_host=host.impala -state_store_port=24000 -use_statestore -webserver_port=8080 -state_store_host=host.impala -be_port=22000 -default_query_options=DEFAULT_ORDER_BY_LIMIT=1000000
?
0 S root ? ? 27963 24729 ?0 ?80 ? 0 - 25810 pipe_w 14:37 pts/5 ? ?00:00:00 grep impalad
? ? ??
?
?
?
?
? ? ? ? ?
原文:http://daizj.iteye.com/blog/2227875