具体回答如下:
UID是用户ID,PID是进程ID,PPID是父进程ID。
UID
UID 用户身份z明(User Identification)的缩写。UID用户在注册会员后,系统会自动的给你一个UID的数值。意思就是给这名用户编个号。
比如,甲在论坛注册后获得UID23 那其后乙注册应该是UID24 但是也有可能是其他,这个是整个论坛系统自动分配的。还有一个可能,比如,甲注册了论坛,UID20 但是后来他退出了,就不是会员了,但是他的UID20就空着了,其后的人也不能得到UID20了。
PID
PID(Process Identification) *** 作系统里指进程识别号,也就是进程标识符。 *** 作系统里每打开一个程序都会创建一个进程ID,即PID。PID(进程控制符)英文全称为Process Identifier,它也属于电工电子类技术术语。PID是各进程的代号,每个进程有唯一的PID编号。它是进程运行时系统分配的,并不代表专门的进程。在运行时PID是不会改变标识符的,但是进程终止后PID标识符就会被系统回收,就可能会被继续分配给新运行的程序。
只要运行一程序,系统会自动分配一个标识。是暂时唯一:进程中止后,这个号码就会被回收,并可能被分配给另一个新进程。只要没有成功运行其他程序,这个PID会继续分配给当前要运行的程序。如果成功运行一个程序,然后再运行别的程序时,系统会自动分配另一个PID。
PPID
PPID Product Part Identification 产品料号识别码,便于产品追踪,并含有部分信息,一般的使用形式是产品包装上贴的一维码或二维码
计算机中代表当前进程的父进程IDPayload protocol identifier,在S1AP通信中标识此服务ID
1)使用lsof命令lsof是一个非常强大的linux工具,她被用来查找哪些程序使用了那些文件。在linux系统下,基本上所有的东西都可以被当作文件来用。socket当然也是一种文件了。所以lsof可以用来查找谁用了某一个端口。具体方法:
lsof -i :port_number |grep "(LISTEN)"
-i是用来查找和网络相关的文件,":"号是必须的,它是标志你查找的是一个端口。port_number就是你要查找的端口号,譬如你要查找是否 有程序占用了oracle的监听端口1521,就可以使用lsof -i :1521 |grep "(LISTEN)"。如果有程序已经占用了,那么下面打印的第二个字段就是该程序的进程id,第一个字段是进程的名字。
如果只有losf -i :port_number可能会查到很多应用程序,但这些程序实际并没有占用你指定的端口,这些端口只是连接到本机器或者别的机器的该端口。所以要grep "(LISTEN)“,因为一个端口只可能被一个程序占用的,所以这种方法是可靠的。
2)使用netstat 命令
大家一定对这个命令比较熟悉了,可能你从没有想到用到来查找哪一个程序的占用了指定的端口。但是netstat -an 的确提供了这种功能。所以有问题了一定要想到先去查找man手册,不过说实话,某些man手册写得让中国人看不懂,那没有办法了,就googe或者 baidu一下吧。
执行man netstat命令,你会发现netstat 提供了'-p'的选项,这个选项的功能是告诉你哪个程序占用了该端口,但是她提供的形式比较古怪是以pid/process_name提供的。pid当然 是进程id了,process_name是进程的命令,中间以'/'号分隔。
和上面的原因一样,我们只查找listen的端口,netstat 给我们提供了-l的选项,这个选项不是默认的选项。
下面以1521端口来看怎么查找到该程序,我们使用下面的命令:
netstat -lnp|awk 'BEGIN{prt=":1521$"}{if ($4 ~ prt) print $0}'
在这里使用awk来匹配第4个字段的模式是为了避免误判。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)