如何管理Linux系统中的进程?
1.对进程的理解
1. 什么是进程?
进程:当程序被触发后,执行者的权限与属性,程序的代码与所需的数据等都会被加载到内存中,操作系统就会给这个内存一个标识符(PID),即我们可以说进程就是一个正在运行中 的程序。
程序:通常指二进制程序,放置在存储媒介中(硬盘,光盘等)以物理文件的形式存在。
2. 进程的状态
进程一共有以下几种状态,即:
R(TASK_RUNNING) 可执行状态(RUNNING,READY)
S(TASK_INTERRUPTIBLE) 可唤醒睡眠状态
D (TASK_UNINTERRUPTIBLE) 不可唤醒睡眠状态
T(TASK_STOPPED) 暂停状态
Z( EXIT_ZOMBIE) 僵死态
下图就是任务管理器,可以看出进程的状态。
2.进程的查看
1. 查看进程树
pstree命令
如图所示输入pstree命令后,以树形的结构显示进程
2. 显示当前命令执行时进程状态
ps命令
a 显示与终端相关进程(BSD)
x 显示所有与终端无关进程(BSD)
u 以用户为归类来显示进程状态信息(BSD)
f 层级结构显示进程信息
o 指定查看选项,pid,comm,nice,pri,pcpu,stat,ppid
-e 显示所有进程(uinx)
-f 显示完整格式信息(unix)
-H 层级结构显示进程的相关信息
-o 指定查看选项,pid,comm,nice,%cpu,%mem,nice
下图为显示所有与终端无关进程
下图为显示所有进程
ps命令显示信息各个字段的含义:
USER #用户名称
PID #进程ID
%CPU #CPU用量百分比
%MEM #内存用量百分比
VSZ #占用虚拟内存大小
RSS #常驻内存集大小
TTY #字符终端
STAT #进程状态
START #运行时间
TIME #占用cpu时间
COMMAND #进程名称
3. 显示指定信息进程
pgrep命令
-u uid 显示指定用户进程
-U name 显示指定用户进程
-t tty 显示指定终端进程
-l 显示进程名称
-a 显示完整格式进程名
-P pid 显示指定进程的子进程
4. 根据进程名称获取pid
pidof命令
5. top命令
top显示进程信息详解
top ##表示系统当期时间
up ##表示系统运行时常
user ##表示登录当前系统的用户数量
load average ##表示平均负载的队列长度(uptime)
task ##表示任务
%cpu ##表示cpu占用百分比
us ##表示用户空间
sy ##表示内核空间
ni ##表示nice调整时间
id ##表示空闲时间
wa ##表示等待io
hi ##表示处理硬件中断
si ##表示处理软件中断
st ##表示被虚拟化程序占用的百分比
mem ##表示物理内存
swap ##表示交换分区占用
##top内部参数##
P cpu百分比排序
M 内存百分比
T 累计占用cpu时间
l 开启/关掉uptime信息
t 开启/关闭task&cpu信息
s 调整刷新频率
k 终止进程
u 查看指定用户进程
##top命令参数##
-d 指定刷新间隔
-b 以批次方式显示
-n 显示批次数量
3.进程的优先级
1.如果按照资源占用划分进程类型
cpu使用密集 ##CPU-Bound
I/O使用密集 ##I/O-Bound
2. 优先级范围
对Linux而言优先级可以被划分成固定个数(0-139)
1-99为实时优先级,数字越大优先级越高,不用手动处理系统,而作为系统自用。
100-139为静态优先级,数字越小优先级越高。
3. NICE值
NICE值:-20~19对用静态优先级,对应优先级100-139
普通用户只可以调低优先级,超级用户可以任意调整优先级。
4. 关于优先级的命令
首先显示系统的进程 ps ax –o nice,pid,comm
nice –n 优先级 程序
reince –n 优先级 程序pid
4.进程前后台的调用
进程前后台调用相关命令
jobs ##查看后台任务
ctrl+z ##将前台运行进程打入后台
bg ##激活后台进程
fg ##调回进程
& ##运行在后台
5.信号
可控信号的类型
man 7 signal
1 ##刷新
2 ##中断键盘输入
3 ##退出键盘
9 ##强制结束
15 ##正常关闭
18 ##激活进程
19 ##强制暂停
20 ##正常暂停
信号指令
kill 信号 pid
pkill 信号 进程名称
6.系统守护进程
1. 实验环境的建立
连接真机与虚拟机之间
网络配置命令nm-connection-editor
添加网络
真机和虚拟机接通
我们在真机中新建文件file,可以看出虚拟机桌面出现文件file,故我们实现了真机和虚拟机的接通。
2. 守护进程的定义
守护进程就是通常讲Daemon进程,是linux后台执行的服务进程
是独立于控制终端、周期性地执行某种任务或等待处理某些发生事件,不会随终端关闭而停止,直到接受停止信息才会结束。
3. 守护进程类型
Sysv init ##经典的守护进程类型延用到rhel6
upstart ##做到并行启动rhel6中应用
systemd ##独立完成启动,rhel7中使用
4. systemctl用法
用法一:
systemctl list-unit-files ##查看服务开机运行情况
systemctl list-units ##查看服务当前运行情况
systemctl list dependencies ##查看服务依赖性
systemctl status service ##查看服务状态
systemctl start service ##开启服务
systemctl stop service ##关闭服务
systemctl reload service ##重新加载服务配置
用法二:
systemctl restart service ##重新启动服务
systemctl enable service ##设定服务开启启动
systemctl enable –now service ##设定服务开机启动并开启服务
systemctl disable service ##设定服务开机关闭
systemctl set-default multi-user.target ##设定系统运行级别为无图形网络模式
systemctl set-default graphical.target ##设定系统运行级别为图形网络模式