我们首先要了解进程是什么,他是做什么的,他要去哪干啥。
进程是已启动的可执行程序的运行实例,进程有以下组成部分:
• 已分配内存的地址空间;
• 安全属性,包括所有权凭据和特权;
• 程序代码的一个或多个执行线程;
• 进程状态。
程序: 二进制文件,静态 /usr/bin/passwd ,/usr/sbin/useradd
进程: 是程序运行的过程, 动态,有生命周期及运行状态。
![45acc31f241369c702babcfe21009e1e.png](https://i-blog.csdnimg.cn/blog_migrate/b8b667de10677ae6e9235e467fcbd88d.png)
![e3c863169bbca418c95633a36cb0b505.png](https://i-blog.csdnimg.cn/blog_migrate/b59e40efece03d32770e4b6087b9aa67.png)
进程的生命周期(了解)
父进程复制自己的地址空间(fork)创建一个新的(子)进程结构。
每个新进程分配一个,唯一的进程 ID (PID),满足跟踪安全性之需。
任何进程都可以创建子进程。
所有进程都是第一个系统进程的后代:
Centos5/6系统进程: init
Centos7系统进程: systemd进程状态(了解)
进程状态产生的原因
在多任务处理操作系统中,每个CPU(或核心)
在一个时间点上只能处理一个进程。
在进程运行时,它对CPU 时间和资源分配的要求会不断变化,
从而为进程分配一个状态,它随着环境要求而改变。
进程管理process
静态查看进程ps,一个进程为例
[root@qianfeng ~]# ps aux | head -2
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.6 128096 6708 ? Ss 16:20 0:01 /usr/lib/systemd/systemd
命令参数说明
ps a 显示现行终端机下的所有程序
ps u 以用户为主的格式来显示程序状况。
ps x 不以终端机来区分。ps aux 输出的字段含义
USER: 运行进程的用户
PID: 进程ID
我们云工程师靠PID,杀死他
%CPU: CPU占用率
%MEM: 内存占用率
VSZ: 占用虚拟内存
RSS: 占用实际内存
TTY: 进程运行的终端
STAT: 进程状态
[常见]
R 运行
S 睡眠 Sleep
T 停止的进程
Z 僵尸进程
X 死掉的进程
START: 进程的启动时间
TIME: 进程占用CPU的总时间
分钟:秒
COMMAND: 进程文件,进程名
![73831fdd3b5639b5193de68593773ee5.png](https://i-blog.csdnimg.cn/blog_migrate/1ea9469bf785d2da04ed76dc895eca72.jpeg)
进程排序
语法
ps aux --sort %cpu
示例
以CPU占比降序排列(减号是降序