本文于 13 天前发布,最后更新于 10 天前
一、概述
- 在 Linux 中,每个执行的程序都称为一个进程。每一个进程都分配一个 ID 号(pid,进程号)。
- 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
- 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。
二、查看
2.1 由进程查端口
方法一
[dmdba@centos-dm ~]$ ps -ef|grep dmserver
dmdba 41181 1 0 Aug31 ? 00:00:49 /opt/dmdbms/bin/dmserver path=/dmdata/PROD/dm.ini -noconsole
dmdba 42471 41779 0 16:39 pts/0 00:00:00 grep --color=auto dmserver
获取到进程号是41181,查看该进程占用的端口
[dmdba@centos-dm ~]$ netstat -anop | grep 41181
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp6 0 0 :::5239 :::* LISTEN 41181/dmserver off (0.00/0/0)
方法二-直接查询
[dmdba@dameng ~]$ netstat -tunlp | grep dmserver
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp6 0 0 :::5239 :::* LISTEN 650030/dmserver
2.2 由端口查进程
某端口被占用,我们想要查看占用该端口的是什么进程
[dmdba@dameng ~]$ lsof -i:5236
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
dmserver 650030 dmdba 5u IPv6 15626699 0t0 TCP *:padl2sim (LISTEN)
得到进程名字 dmserver 后,查看进程的开启时间等
[dmdba@dameng ~]$ ps -eo pid,lstart,etime,cmd | grep dmserver
650030 Tue Nov 5 09:32:57 2024 2-00:23:08 /opt/dmdbms/bin/dmserver path=/dmdata/5236/DMDB/dm.ini -noconsole
655699 Thu Nov 7 09:56:05 2024 00:00 grep --color=auto dmserver