常见的端口号列表:https://www.cnblogs.com/httpssl/p/11003935.html
ps命令详解
ps : 将某个进程显示出来
-A 显示所有程序。
-e 此参数的效果和指定"A"参数相同。
-f 显示UID,PPIP,C与STIME栏位。
查找特定应用程序所占用的进程
ps -ef|grep [应用程序名称]
grep命令是查找,中间的|是管道命令 是指 ps命令与grep命令 同时执行。
查看应用程序的进程
我查找的是 java程序占用的进程,命令如下:
ps -ef|grep java
可以看到,能够查找到两个进程。
请注意,带--color=auto
是grep命令自带的进程。
如果你再次运行ps -ef|grep java
,会发现它的的进程号是会变动的,而java程序占用的进程号不会改变。
这对于新手来说,很不方便,因为有时候使用kill 命令会提示 进程不存在。
此时,可以通过命令,屏蔽grep本身占用的进程,命令如下:
ps -ef|grep java|grep -v grep
查找到进程号,可以通过 kill 命令,将其杀死,命令如下:
kill -9 [进程号]
通过进程查看端口
以 java 为例,它的进程号是 22830
netstat -apn | grep 22830
如果列表太多,可以通过 less命令 只显示一屏幕
netstat -apn | grep 22830|less
或者只显示 10 行信息
netstat -anp |grep 22830 -m 10
通过端口查看进程
有时候我们会遇到Linux系统端口被占用的问题,比如:
此时,我们可以通过被占用的端口号,查找究竟是哪个进程占用了该端口。
lsof——list open files,它是Linux系统查看打开的文件以及相关进程信息的工具。
该命令需要访问核心内存和各种文件,所以需要root用户执行。
lsof -i:端口号
以查找端口号10000为例子:lsof -i:10000
参数详解:
COMMAND:与文件关联进程的名称
PID:进程号
USER:归属的用户
FD:进程与文件的关联关系
TYPE:文件类型
DEVICE:文件所在设备的设备号(major,minor)
SIZE/OFF:文件大小或进程对文件操作的偏移量
NODE:文件索引标识
NAME:文件名
FD列的值,指示了进程与文件的关联关系,有以下常见取值:
cwd:进程工作目录
txt:进程由该文件拉起(如二进制文件或脚本)
rtd:进程的根目录
mem:内存映射文件
N(u/w/r):该文件为进程打开的第N个文件描述符,u为可读可写模式,w为可写模式,r为可读模式
TYPE列有以下常见取值:
REG:一般文件
DIR:目录
CHR:字符设备
BLK:块设备
FIFO:命名管道
PIPE:管道
IPV4:ipv4套接字
unix:unix域套接字
根据以上字段,我们可以了解到哪个文件,以何种关联方式与哪个进程关联。
但执行lsof命令,有时候输出太多,为了获取必要输出,我们就得加一些过滤选项。
该命令博大精深。
这里不做其他探讨,只用作查看端口运行情况。
拓展文档:
https://blog.csdn.net/qq_27870421/article/details/92803453
https://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316599.html