Linux中的进程管理

1、进程定义

【1】什么是进程:
程序是静态的代码文件
进程是指程序运行时的形态
进程是程序的一个副本
进程是有生命周期的(准备期、运行期、终止期)
【2】进程&线程
进程是资源调用的最小单位,线程是进程的最小单位
程序执行流是从上到下贯穿运行
当进程是多人物,cpu是多核心,多任务应该同时被每个核心处理,每个核心处理的任务叫线程
【3】进程状态

R(TASK_RUNNING) 可执行态(running , ready)
S(TASK_INTRRUPTABLE) 可唤醒休眠
D(TASK_UNINTRRUPTABLE) 不可唤醒休眠
T(TASK_STOP) 暂停状态
Z(EXIT_ZOMBIE) 僵死态

Linux中的进程管理

2、进程查看命令

【1】gnome-system-monitor: 图形进程查看工具
【2】ps:进程查看
ps命令的三种风格:unix bad GNU
pa a 与终端相关的进程 (当用户登陆系统后产生的进程都是带终端的
ps x 与终端无关的进程
ps u 用户信息归类的查看方式
ps f 进程层级关系
ps o 显示指定参数 pid (comm nice pri pcpu ppid stat,user,group)
ps -e 显示所有进程
ps -f 显示信息的完整格式
ps -H 显示进程大的层级结构
ps -o 显示指定参数

Linux中的进程管理
Linux中的进程管理
Linux中的进程管理
Linux中的进程管理
Linux中的进程管理
Linux中的进程管理
ps ax显示信息如下:

PID 进程id
TTY 进程用到的终端
STAT 进程状态
TIME 进程占用cpu时长
COMMAND 进程名称

Linux中的进程管理
ps aux显示信息如下

USER 进程所有人
PID 进程id
%CPU 进程使用cpu的用量
%MEM 进程所用到的内存用量
VSZ 进程所用的虚拟内存的大小
RSS 进程常驻内存中的数据大小
TTY 进程用到终端
STAT 进程状态
START 进程运行时长
TIME 进程占用cpu时长
COMMAND 进程名称

Linux中的进程管理
pgrep 进程过滤

pgrep -u uid 指定用户进程
pgrep -U user 显示指定用户进程
pgrep -t tty 显示指定终端进程
pgrep -l 显示进程名称
pgrep -a 显示进程的完整名称
pgrep -P 下时进程的子进程

Linux中的进程管理

pidof vim 查看vim的pid

Linux中的进程管理

top 动态进程查看

top中的内容显示的信息

07:07:20 系统时间
up 6:43 运行时长
1 user 系统中有一个用户登陆

Tasks:

314 total 任务总量
1 runing 正在运行
313 sieeping 休眠任务数量
0 stopped 被暂停数量
0 zombie 僵死任务数量

%Cpu(s)

7.0 us 用户空间
1.3 sy 内核空间
0.0 ni nice值调整时间
90.6 id 空闲时间
0.0 wa 等待io时间
0.7 hi 处理硬件中断时间
0.3 si 处理软件中断时间
0.0 st 被偷走的时间(vm使用时间)

MiB Mem

1806.1 total 总量
159.5 free 空闲
138.2 used 占用
508.4 buff/cache 缓存

Mib Swap:交换分区总量

top命令的参数

top -d 指定刷新频率
top -b 一批次方式显示
top -n 指定显示的批次数量

Linux中的进程管理
Linux中的进程管理
Linux中的进程管理
top内部指令

P cpu排序
M 内存排序
T 累计展通cpu时间排序
l 关闭/开启uptime信息
t 关闭/开启cpu&task
s 指定刷新频率
k 操作进程
u 查看指定用户进程

Linux中的进程管理
Linux中的进程管理

3、进程优先级

系统是多任务多用户的操作模式,任务的重要性是有区分的
如何确定任务的重要性
【1】“优先级”
范围:0-139
内核自控优先级范围:0-99
用户可控优先级:100-139
【2】nice
范围:-20-19

renice -n -5 9880 更改优先级
nice -n -5 & 指定优先级打开进程

Linux中的进程管理
Linux中的进程管理

s *进程
S sleeping
< 优先级高
T stop
R running
N 优先级低
+ 运行在前台

Linux中的进程管理

注意:高级用户可将优先级任意调高或者调低,普通用户止咳将优先级调低,且不可调回

4、进程的前后调用

ctrl + z 把占用的shell的进程打入后台挂起
bg 把后台挂起的进程运行起来
fg 把后台进程调回前台
& 运行进程在后台
jobs 查看当前shell中在后台所有工作

Linux中的进程管理

5、进程信息号

【1】进程信号

1 重新加在系统配置文件(source)
2 清空内存中的进程数据
3 清空内存中的鼠标(ctrl + /)
9 强行结束进程(不能被阻塞)
15 正常关闭进程(会被阻塞)
18 暂停进程(不会被阻塞)
20 暂停进程(会被阻塞)

【2】进程信号控制工具

kill 进程信号 pid
killall 进程信号 进程名字
pkill 进程信号 进程条件
Linux中的进程管理
【3】守护进程
替内核分担程序管控的程序
通常pid 为1
systemd -------- > systemctl
systemctl的作用: 管理系统服务
服务是指在系统中开启的共享系统资源到网络中的程序
cs: client server
systemctl 命令的用法

systemctl start 开启
systemctl stop 关闭
systemctl status 查看状态
systemctl reload 重新加载
systemctl restarrt 重新启动服务
systemctl enable 设定服务开机启动
systemctl enable - - now 设定服务开机启动并当前开启服务
systemctl disable 设定服务开启不启动
systemctl list-units 查看系统所有服务当前状态
systemctl list-unit-files 查看服务开机状态
systemctl list-dependencies 列出服务依赖性
systemctl mask 冻结服务
systemctl unmask 解锁
systemctl set-default 设定系统运行模式 (multi-user.target 无图形网络模式)( graphical.target 有图形的网络模式)
systemctl get-default 查看系统运行模式(系统运行模式0:POWEROFF 1:single 2、3、4:noG+NETWORK 5:G+NETWORK 6:REBOOT)

6、系统中的登陆审计

【1】w

显示正在登陆系统的账号
-i 显示登陆来源
/var/run/utmp

【2】last

登陆成功现在已经退出
/var/log/wtmp/
Linux中的进程管理
【3】lastb

试图登陆但未成功
/var/log/btm
Linux中的进程管理

7、systemd守护进程

【1】实验环境
[email protected] > 192.168.1.33
[email protected] --------- > 192.168.1.44

为了实验效果更加直观此处修改主机名称以及背景和字体颜色:
Linux中的进程管理
Linux中的进程管理
Linux中的进程管理
Linux中的进程管理
Linux中的进程管理

以下为实验环境的建立:
Linux中的进程管理
Linux中的进程管理
Linux中的进程管理

另一台同如此 只改变ip

Linux中的进程管理
Linux中的进程管理
Linux中的进程管理

ping:
Linux中的进程管理

【2】远程操作主机
ssh 远程主机ip -l 远程主机用户
Linux中的进程管理