Linux 的进程和服务管理
@
§1 基本
关于进程
- Linux 中每个执行的程序都称为一个 进程
- 每个进程都分配一个 ID
- 每个进程都对应一个父进程,每个父进程都可以复制多个子进程
- 进程可以以两种方式存在
- 前台:用户当前屏幕正在操作的进程
- 后台:用户实际在操作,但屏幕上未显示
- 系统服务通常以后台进程形式常驻系统中,直到关机
关于服务
- 服务的本质就是进程
- 服务的进程通常运行于后台,又名守护进程
- 服务通常监听某个端口,等待其他程序请求
§2 常用指令
§2.1 ps [查看进程]
全称:processes status 进程状态
指令:ps aux 显示全部进程所有信息,BSD 风格
指令:ps -u root u 显示root用户(-u)进程的用户格式(u)信息
指令:ps -ef 显示所有进程所有信息,一般需要查看父进程时使用
说明:
参数信息如下
- -a 显示所有进程
- -e 同 -a
- -f 使用全格式显示进程,增加 UID、PPID、C、STIME
- -u 按用户名筛选进程
- u 使用用户格式显示进程信息,增加列 User、%CPU、%MEM、VSZ、RSS
- -x 显示后台进程运行参数
字段说明
- USER 用户
- UID 同 USER
- PID 进程 ID
- PPID 父进程 ID
- %CPU cpu使用率
- %MEM 内存占用率
- C 同 %CPU
- VSZ 占用的虚拟内存,单位 KB
- RSS 占用的物理内存,单位 KB
- TTY 使用的终端
- ? 表示与终端无关
- pts/0 表示由网络连接的进程
- STAT 状态
- D: 无法中断的休眠状态 (通常 IO 的进程)
- R: run,正在执行中
- S: sleep,静止状态
- T: 暂停执行
- Z: 不存在但暂时无法消除
- W: 没有足够的记忆体分页可分配
- <: 高优先序的行程
- N: 低优先序的行程
- L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
- s:进程的领导者,其下有子进程
- |:多线程,克隆线程
- +:位于后台的进程组
- START 进程启动时间
- TIME 进程占用 CPU 的总时间,单位分钟(00:05 表示5分钟)
- STIME 同 TIME
- COMMAND 进程启动时的命令行
- CMD 同 COMMAND
§2.2 pstree [查看进程树]
指令:pstree
指令:pstree -up 显示进程树,显示用户、进程ID
§2.3 kill/killall [杀进程]
指令:kill -9 进程 ID 强制立即停止
指令:kill (UID==某用户)的进程ID 踢掉非法登陆的某用户
指令:kill /usr/sbin/sshd的进程ID 禁止 sshd 登陆
指令:killall 进程名 终止某进程名的进程,可能终止多个同名,可以使用通配符
§2.4 service/systemctl [服务控制指令]
版本:centOs 7.0 以下,7.0开始使用 systemctl指令
指令:service 服务名 操作
说明:
服务操作列表
- status 查看服务状态
- stop 停止
- start 启动
- restart 重启
查看服务列表 /etc/init.d 目录下
§2.5 chkconfig [服务运行级别操作指令]
全称:check config
指令:chkconfig --list 查看服务
指令:chkconfig 服务名 --list 查看具体服务
指令:chkconfig --level n 服务名 开关 设置某服务在运行级别n时是否自启动,开关用on/off 表示
指令:chkconfig 服务名 开关 在所有运行级别,on/off某服务
§2.6 top [动态进程监控 常用性能工具]
指令:top 选项
说明:
结果说明:
时间行
- top 当前时间
- up 上电时间
- users 当前登录用户数量
- load average 负载均值
进程统计
- total 总计进程数
- running 运行中进程数
- sleeping 睡眠中进程数
- stop 停止进程数
- zombie 闲置/僵尸进程数
CPU 行/交换行
- us user space,用户占用 cpu率
- sy sysctl,系统占用 cpu率
- ni nice,改变过优先级的进程占用CPU的百分比
- id idolt,空闲CPU率
- wa wait,IO等待占用CPU的百分比
- hi Hardware IRQ,硬中断占用CPU的百分比
- si Software Interrupts,软中断占用CPU的百分比
内存行
- total 总共
- used 使用中
- free 空闲
- buffers/cache 缓存/缓冲
可用内存 = free + buffers + cache
当交换区 used 数值不断变化时,说明交换区一直在和实际内存进行数据交换,说明内存不够用
字段说明
- PID:进程id
- USER:进程所有者
- PR:进程优先级
- NI: nice值。负值表示高优先级,正值表示低优先级
- VIRT:进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
- RES:进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
- SHR:共享内存大小,单位kb
- S:进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
- %CPU:上次更新到现在的CPU时间占用百分比
- %MEM:进程使用的物理内存百分比
- TIME+:进程使用的CPU时间总计,单位1/100秒
- COMMAND:进程名称(命令名/命令行)
指令选项说明:
- -d:设置刷新频率,单位 秒
- -p:监控指定进程 ID 的状态
- -q:该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行
- -S:指定累计模式
- -s:使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险
- -i:忽略闲置/僵死进程
- -c:显示整个命令行而不只是显示命令名
指令操作说明:
交互
- Ctrl+L:擦除并且重写屏幕
- q:退出程序
- s:变更刷新频率,单位 秒。默认 5秒
- u:指定用户,只监控此用户的进程
- k:终止一个进程
- f:从当前显示中添加或者删除项目
- F:同 -f
- o:改变显示项目的顺序
- O:同 -o
- W:将当前设置写入~/.toprc文件中
- r:重新安排一个进程的优先级别,默认值是10
开关
- m:切换显示内存信息
- t:切换显示进程和CPU状态信息
- c:切换显示命令名称和完整命令行
- l:切换显示平均负载和启动时间信息
- i:是否忽略闲置和僵死进程
- S:是否切换累计模式
排序
- M:按 内存使用率 排序
- P:以 CPU使用率 排序,默认
- T:按 时间/累计时间 排序
- N:按 进程ID 排序
§2.7 netstat [网络进程监控 常用网络监控工具]
指令:netstat 选项
指令:netstat -anp
说明:
结果说明
- Active Internet connections 有源TCP连接
- Active UNIX domain sockets 有源Unix域套接口,只能用于本机通信,性能可以提高一倍
指令选项说明
- -a (all)显示所有选项,包括 LISTEN 的进程
- -t (tcp)仅显示tcp相关选项
- -u (udp)仅显示udp相关选项
- -n 拒绝显示别名,能显示数字的全部转化成数字。
- -l 仅列出有在 LISTEN 的服務状态
- -p 显示建立相关链接的程序名
- -r 显示路由信息,路由表
- -e 显示扩展信息,例如uid等
- -s 按各个协议进行统计
- -c 每隔一个固定时间,执行该netstat命令。
本文内容部分来自
Linux top命令详解
Linux netstat命令详解
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构