工作中重启环境时常常出现内存溢出等等问题,往往需要查杀进程来帮助重启成功,下面就查杀线程的详细指令做下总结:
1.查找需要kill掉的线程:
ps -elf|grep 【线程关键信息】
比如:ps -elf|grep java
这样找到所有JAVA 线程
比如要删除tomcat线程,可以执行:ps -elf|grep tomcat
这样就可以找到跟tomcat相关的所有线程,从中找到你需要kill掉的线程ID
2. 强制终止线程:
kill -9 【线程ID】
比如你的线程ID是5645646,那就可以执行:kill -9 5645646
3.确认线程是否已经删除:
ps -elf|grep tomcat 或者 ps -elf|grep java
补充工作中遇到线程关键信息不清楚或者加上关键信息查出的线程不全时处理办法:
1.查找所有JAVA进程
ps -elf|grep java
2.进入环境放文件的路径
比如 cd /**/**/**/**/bin
3.挨个查看进程文件内容,确定相关关键信息
./jinfo 进程号 (检查内部信息是否是自己想查杀的进程信息)
4.杀进程
kill -9 进程号
知识补充
1,linux中查看进程,使用ps命令。
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,linux中杀死指定的进程,使用kill命令。
显示CPU使用情况以及部分进程:top
显示连接端口使用进程:netstat -noap/-an |grep NAME
使用kill命令结束进程:kill xxx
常用:kill -9 324
Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:# killall -9 NAME
3,重启进程,可以进入到进程的执行文件所在的路径下,执行文件 ./文件名。
有关linux进程管理的参考文章:
学习Linux后台进程管理的一些命令
Linux下查看进程的所有子进程和线程的方法
Linux下查看一个进程打开了哪些文件的命令示例
linux 如何找到进程的工作目录
更多知识见:http://www.jbxue.com/LINUXjishu/linux_command_x2ty1F9v_2.html