linux查找进程id端口占用和杀死进程

linux 查找进程id端口占用和杀死进程

ps 命令用于查看当前正在运行的进程

辅助上grep 用于搜索匹配
ps -ef | grep java

ps ax : 显示当前系统进程的列表
ps aux : 显示当前系统进程详细列表以及进程用户

-e 显示所有进程,环境变量 此参数的效果和指定"A"参数相同。
a 显示终端上地所有进程,包括其他用户地进程
-A 显示所有程序。
c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
e 列出程序时,显示每个程序所使用的环境变量。
f 用ASCII字符显示树状结构,表达程序间的相互关系。
-H 显示树状结构,表示程序间的相互关系。
-N 显示所有的程序,除了执行ps指令终端机下的程序之外。
s 采用程序信号的格式显示程序状况。
S 列出程序时,包括已中断的子程序资料。
-t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
u 以用户为主的格式来显示程序状况。
x 显示没有控制终端地进程

显示结果
user : 进程所属的用户
pid  : 进程id
ppid : 该进程的父进程id

lsof
lsof(list open files)是一个列出当前系统打开文件的工具。
在linux环境下,任何事物都以文件的形式存在,
通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。

COMMAND     PID        USER   FD      TYPE             DEVICE SIZE/OFF       NODE  NAME
/opt/lamp   1321       root   txt     REG              202,1    590080       665698 /opt/lampp/bin/httpd

释义:
COMMAND:进程的名称
PID:进程标识符
USER:进程所有者
FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等 TYPE:文件类型,如DIR、REG等
DEVICE:指定磁盘的名称
SIZE:文件的大小
NODE:索引节点(文件在磁盘上的标识)
NAME:打开文件的确切名称


pgrep Java | xargs ps -u --pid
模糊查找 杀死进程
假设我要查看conky的进程信息,但是我只记得con是关键字
pgrep con | xargs ps -u --pid
分步则为:
1.pgrep con
2.ps --pid xxx

查找端口占用 指定端口占用
netstat -apn | grep 80

显示结果:
最后的一栏是 PID/Program Name


或者通过lsof命令查找
lsof -i:80   查找端口



*以优雅的方式结束进程
# kill -l PID
-l选项告诉kill命令用好像启动进程的用户已注销的方式结束进程。
当使用该选项时,kill命令也试图杀死所留下的子进程。
但这个命令也不是总能成功--或许仍然需要先手工杀死子进程,然后再杀死父进程。

kill 命令用于终止进程
例如: kill -9 [PID]
-9 表示强迫进程立即停止

这个强大和危险的命令迫使进程在运行时突然终止,进程在结束后不能自我清理。
危害是导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无效。
当使用此命令时,一定要通过ps -ef确认没有剩下任何僵尸进程。
只能通过终止父进程来消除僵尸进程。如果僵尸进程被init收养,问题就比较严重了。
杀死init进程意味着关闭系统。
如果系统中有僵尸进程,并且其父进程是init,
而且僵尸进程占用了大量的系统资源,那么就需要在某个时候重启机器以清除进程表了。

killall命令杀死同一进程组内的所有进程。其允许指定要终止的进程的名称,而非PID。
# killall httpd

pkill 使用方法同上 pkill firefox
pkill 可以很方便杀死某用户的所有进程
pkill -u root

ps
lsof
netstat
kill

参考:
http://www.cnblogs.com/lucyjiayou/archive/2012/02/24/2366194.html
http://blog.csdn.net/wojiaopanpan/article/details/7286430/
http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316599.html
守护进程daemon http://blog.csdn.net/jw903/article/details/45312419
linux检查开放端口: http://www.cnblogs.com/kerrycode/p/5609010.html

windows下查看端口占用命令:
netstat -ano | findstr 80
windows下查看进程列表命令:
tasklist

posted @ 2017-04-12 14:18  wifix  阅读(26772)  评论(0编辑  收藏  举报