十一、Linux中的进程和服务
11.1、进程
-
进程:已经启动的可执行程序的运行实例
-
PID: 进程的ID(每个新进程都有一个唯一的PID)
-
PPID: 父进程的ID
-
任何一个进程都可以创建一个子进程
-
在redhat 7以上,所有进程的父进程:systemd
在redhat 5,6中,所有进程的父进程:init
11.2、ps ---用于显示当前进程状态
常用选项:
-
-aux:列出所有进程(前面可以不加-,结果一样)
-
-ef:列出所有进程 (最好加-,不加-,结果不一样)
-
-l:列出和当前用户有关的进程
-
-u 用户:查看某一用户的进程状态
-
-aux 或者 -l 的结果中进程的状态:
运行中:
- R:该进程正在运行或等待运行
睡眠:
- S:正在休眠但是可以被唤醒
- D:正在休眠,而且不可以被唤醒,该进程被中断,可能会导致设备的异常状态
- K:正在休眠,而且不可以被唤醒,该进程可以被中断
已停止:
- T:进程被停止,但是可以通过其他进程来进行恢复
- T:正在被调试的进程
僵停:
- Z:子进程在退出时向父进程发出信号,除PID外,所有资源全部释放
- X:父进程获取了子进程的机构,子进程可以完全释放,该状态进程中是看不到的
-
-aux 结果中进程的优先级(大写字母后的小写字母)
- < 高优先级
- n 低优先级
- s 包含子进程
- + 位于后台的进程组
-
ps -aux 参数详解
- %CPU:占用的CPU使用率
- %MEM:占用的记忆体使用率
- VSZ:占用的虚拟记忆体大写
- RSS:占用的记忆体大写
- TTY:终端的次要装置号码(minor device number of tty)
- STAT:该进程的状态
- START;进程开始时间
- TIME:执行的时间
- COMMAND:所执行的指令
-
ps -j :显示当前作业进程信息
- TGID:线程组ID
- SID:会话ID
11.3、top ---可以查看实时的进程状态
- top -d 2:2秒刷新一次
11.4、中断进程
- 信号:传递给Linux进程的操作
- kill -l :显示可以传递给Linux进程的所有信号
- 常用:
- kill -9 PID :强制杀死一个进程
- kill -15 PID :正常的方式终止一个进程
- kill -2 :类似control+c的操作
11.5、查看端口占用情况
Linux 查看端口占用情况可以使用 lsof 和 netstat 命令。
-
lsof 命令
-
lsof(list open files)是一个列出当前系统打开文件的工具。
-
lsof 查看端口占用语法格式:
-
lsof -i:端口号
-
查看服务器 8000 端口的占用情况:
lsof -i:8000
-
-
lsof -i 需要root用户来执行命令,输出各列信息的意义如下:
- COMMAND:进程的名称
- PID:进程标识符
- USER:进程所有者
- FD:文件描述符,应用程序通过文件描述符识别该文件。如:cwd、txt等
- TYPE:文件类型,如DIR、REG等
- DEVICE:指定磁盘的名称
- SIZE:文件的大小
- NODE:索引节点(文件在磁盘上的标识)
- NAME:打开文件的确切名称
-
更多lsof命令
lsof -i:8080:查看8080端口占用 lsof abc.txt:显示开启文件abc.txt的进程 lsof -c abc:显示abc进程现在打开的文件 lsof -c -p 1234:列出进程号为1234的进程所打开的文件 lsof -g gid:显示归属gid的进程情况 lsof +d /usr/local/:显示目录下被进程开启的文件 lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长 lsof -d 4:显示使用fd为4的进程 lsof -i -U:显示所有打开的端口和UNIX domain文件
-
-
netstat 命令
-
netstat -tunlp | grep 端口号 :用于显示 tcp,udp 的端口和进程等相关情况。
- -t (tcp) 仅显示tcp相关选项
- -u (udp)仅显示udp相关选项
- -n 拒绝显示别名,能显示数字的全部转化为数字
- -l 仅列出在Listen(监听)的服务状态
- -p 显示建立相关链接的程序名
-
查看 8000 端口的情况,使用以下命令:
- netstat -tunlp | grep 8000
-
更多netstat命令
netstat -ntlp //查看当前所有tcp端口 netstat -ntulp | grep 80 //查看所有80端口使用情况 netstat -ntulp | grep 3306 //查看所有3306端口使用情况
-