Linux系统进程管理
一、进程简介
1.什么是进程
进程是已启动的可执行程序的运行实例,进程有以下组成部分:
• 已分配内存的地址空间;
• 安全属性,包括所有权凭据和特权;
• 程序代码的一个或多个执行线程;
• 进程状态;
程序: 二进制文件,静态 /usr/bin/passwd ,/usr/sbin/useradd。
进程: 是程序运行的过程, 动态,有生命周期及运行状态。
2.进程的生命周期
• 父进程复制自己的地址空间(fork)创建一个新的(子)进程结构。
• 每个新进程分配一个,唯一的进程 ID (PID),满足跟踪安全性之需。
• 任何进程都可以创建子进程。
• 所有进程都是第一个系统进程的后代:
• Centos5/6系统进程: init
• Centos7系统进程: systemd
3.进程状态
- 进程状态产生的原因:
在多任务处理操作系统中,每个CPU(或核心),在一个时间点上只能处理一个进程。在进程运行时,它对CPU 时间和资源分配的要求会不断变化,从而为进程分配一个状态,它随着环境要求而改变。 - 图示解释
二、进程管理process
1.目标
了解进程的相关信息:
• PID,PPID
• 当前的进程状态
• 内存的分配情况
• CPU和已花费的实际时间
• 用户UID,它决定进程的特权
• 进程名称
2.静态查看进程ps
2.1静态查看进程ps
ps:是precess status,叫进程状态。
- 查看系统所有进程(这里仅查看前五行)
[root@localhost ~]# ps aux | head -5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.4 193760 4664 ? Ss 13:37 0:11 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0.0 0.0 0 0 ? S 13:37 0:00 [kthreadd]
root 4 0.0 0.0 0 0 ? S< 13:37 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? S 13:37 0:10 [ksoftirqd/0]
- 仅查看vim进程示例
[root@localhost ~]# ps aux | grep vim
- ps aux输出的字段含义
//
USER: 运行进程的用户
PID: 进程ID,云计算工程师靠PID,杀死进程。
%CPU: CPU占用率
%MEM: 内存占用率
VSZ: 占用虚拟内存
RSS: 占用实际内存
TTY: 进程运行的终端
STAT: 进程状态
[常见进程状态]:
R 运行
S 睡眠
T 停止的进程
Z 僵尸进程
X 死掉的进程
START: 进程的启动时间
TIME: 进程占用CPU的总时间 (分钟:秒)
COMMAND: 进程文件,进程名
2.2进程排序
- 语法示例:(这里以前5行为例,-%cpu表示按cpu降序排列)
[root@localhost ~]# ps aux --sort -%cpu | head -5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2064 1.9 16.1 2761648 160732 ? Sl 18:43 0:10 /usr/bin/gnome-shell
root 2649 1.3 0.6 161296 6064 ? Ss 18:51 0:01 sshd: root@pts/0,pts/1
root 2368 0.6 4.6 1096212 46688 ? Sl 18:43 0:03 /usr/bin/gnome-software --gapp