内容:
10.1 进程概述和ps查看进程工具
10.2 uptime查看系统负载 top动态管理进程
10.3 前后台进程切换 -nice进程优先级 -screen后台执行命令
10.1 进程概述和ps进程管理
10.1.1 进程:
进程是已启动的可执行程序的运行实例,进程有以下组成部分:
1.已分配内存的地址空间
2.安全属性,包括所有权平局和特权。
3.程序代码的一个或多个执行线程。
4.进程状态。
下图所示是进程的生命周期:
描述:
父进程复制自己的地址空间(fork)创建一个新的(子)进程结构。每个新进程分配一个唯一的进程ID(PID),满足跟踪安全性之需。PID和父进程ID(PPID)是子进程环境的元素,任何进程都可以创建子进程,所有进程都是第一个系统进程的后代。
Centos 5或6 PID为1的进程:init
Centos7 PID为1的进程:systemd
僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或者waitpid获取子进程环境的状态信息,那么子进程的进程描述符仍然保存在系统。这种进程被称为僵尸进程。
10.1.2 进程的属性
进程ID:PID,是唯一的数值,用来区分进程
父进程的ID:PPID
启动进程的用户ID(UID)和所属组的(GID)
进程状态:状态分为运行 R ,休眠 S ,僵尸 Z
进程执行的优先级
进程所连接的终端名
进程资源占用:比如占用资源大小(CPU、内存占用量)
10.1.3 使用ps查看进程
1.ps查看进程
常用参数:
a:显示跟当前终端关联的所有进程
u:基于用户的格式显示(显示某用户ID所有的进程)
x:显示所有进程,不以终端来区分
[root@localhost ~]# ps -aux | more
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 125456 3772 ? Ss Aug10 0:04 /usr/lib/systemd/systemd --switched-r
oot --system --deserialize 22
root 2 0.0 0.0 0 0 ? S Aug10 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Aug10 0:04 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< Aug10 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S Aug10 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S Aug10 0:00 [rcu_bh]
# 最后一列方括号括起来的进程是内核态的进程。没有括起来的是用户态进程
# USER:启动这些进程的用户
# PID:进程的ID
# %CPU:进程占用的CPU百分比
# %MEM:进程占用内存的百分比
# VSZ: 进程占用的虚拟内存大小(单位:KB)
# RSS: 进程占用的物理内存大小(单位:KB)
# STAT:该程序目前的状态,Linux进程有5中基本状态:
# R:该程序目前正在运作,或是可被运作
# S:该程序目前在睡眠当中(可说是idle空闲状态),但可被某些讯号(signal)唤醒。
# T:该程序目前正在侦测或者是停止了。
# Z:该程序应该已经终止,但父进程无法正常终止,造成zombie(僵尸)程序的状态。