今天发现服务器上Tomcat 8080端口起不来,老提示端口已经被占用。
使用命令:
ps -aux | grep tomcat
发现并没有8080端口的Tomcat进程。
使用命令:netstat –apn
查看所有的进程和端口使用情况。发现下面的进程列表,其中最后一栏是PID/Program name
发现8080端口被PID为9658的Java进程占用。
进一步使用命令:ps -aux | grep java,或者直接:ps -aux | grep pid 查看
就可以明确知道8080端口是被哪个程序占用了!然后判断是否使用KILL命令干掉!
方法二:直接使用 netstat -anp | grep portno
即:netstat –apn | grep 8080
关键字: linux 查进程、杀进程、起进程
1.查进程
ps命令查找与进程相关的PID号:
ps a 显示现行终端机下的所有程序,包括其他用户的程序。
ps -A 显示所有程序。
ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
ps -e 此参数的效果和指定"A"参数相同。
ps e 列出程序时,显示每个程序所使用的环境变量。
ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
ps -H 显示树状结构,表示程序间的相互关系。
ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
ps s 采用程序信号的格式显示程序状况。
ps S 列出程序时,包括已中断的子程序资料。
ps -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
ps u 以用户为主的格式来显示程序状况。
ps x 显示所有程序,不以终端机来区分。
最常用的方法是ps aux,然后再通过管道使用grep命令过滤查找特定的进程,然后再对特定的进程进行操作。
ps aux | grep program_filter_word,ps -ef |grep tomcat
ps -ef|grep java|grep -v grep 显示出所有的java进程,去处掉当前的grep进程。
2.杀进程
使用kill命令结束进程:kill xxx
常用:kill -9 324
Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:# killall -9 NAME