Linux系统中的进程管理
了解进程
进程是已启动的可执行程序的运行实例,进程有以下组成部分:
• 已分配内存的地址空间;
• 安全属性,包括所有权凭据和特权;
• 程序代码的一个或多个执行线程;
• 进程状态
前台运行 占CPU、内存资源,运行可见
后台运行 不争抢CPU、内存资源,系统资源闲置时运行,运行不可见,只显示运行结果
后台暂停 运行无条件,暂时停止后台进程
进程状态
R(running) | 该程序正在运行中。 |
---|
S(sleeping) | 该程序目前正在睡眠状态(idle),但可以被唤醒(signal)。 |
D | 不可被唤醒的睡眠状态,通常进程可能在等待I/O的情况。 |
T(stop) | 停止状态,可能是在工作控制(背景暂停)或除错(traced)状态。 |
Z(Zombi) | 僵尸状态,程序已经终止但却无法被移除至内存外。 |
图像模式
gnome - system - monitor 图形界面查看进程
命令模式
ps | 自己所在的shell里面运行的进程 |
---|
ps a | 在shell当中运行的所有进程,包括shell的环境bash |
ps -a | 在shell当中运行的所有进程,不包括shell环境本身信息bash |
ps -A | 系统当中所有的进程,与shell无关 |
ps -d | 与A类似 ,没有允许环境(shell) |
ps -e | 显示进程的扩展信息(系统资源),与-A 类似 |
ps x | 显示所有输出设备终端的进程 |
ps -u | 显示用户信息 ,id等等,终端 ,各种时间 |
ps -f | 显示父级进程以及子进程 |
ps -A 系统当中所有的进程,与shell无关
ps a 在shell当中运行的所有进程,包括shell的环境bash
ps -a 在shell当中运行的所有进程,不包括shell环境本身信息bash
ps -u 显示用户信息 ,id等等,终端 ,各种时间
ps x 显示所有输出设备终端的进程
ps -f 显示父级进程以及子进程
ps -e 显示进程的扩展信息(系统资源),与-A 类似
ps常用组合
ps aux | 显示系统当中的所有进程并显示进程用户 |
---|
ps ef | 显示进程的详细信息以及进程的父子关系 |
ps ax | 显示当前系统当中的所有进程 |
pstree | 显示当前系统的进程树 |
pstree 显示当前系统的进程树
ps aux 显示系统当中的所有进程并显示进程用户
ps ef 显示进程的详细信息以及进程的父子关系
ps ax 显示当前系统当中的所有进程
显示进程信息
ps -o ***** | 显示进程的指定信息 |
---|
ps -o comm | 进程名称 |
ps -o user | 进程所有人 |
ps -o group | 进程所有组 |
ps -o %cpu | 进程cpu使用率 |
ps -o %mem | 进程内存使用率 |
ps -o pid | 进程id |
ps -o nice | 进程优先级 |
进程排序
ps ax --sort=+%cpu / -%cpu(降序) 按cpu使用率排序
ps ax --sort=+%mem / -%mem(降序) 按内存使用率排序
STAT中显示的信息
S | 进程状态 |
---|
s | 没有父进程,顶级进程 |
l | 在内存当中有锁定空间(进程结束之前不会被系统回收) |
+ | 正在前台运行的进程 |
N | 表示优先级低 |
< | 表示优先级高 |
进程优先级
进程的查看
ps ax -o pid,nice,comm 优先级的查看 (进程的优先级范围: -20~`19)
改变进程优先级
nice -n 优先级数字 进程名称 指定优先级且开启进程
renice -n 优先级数字 进程名称 更改已打开进程优先级
进程前后台调用
jobs | 查看被打入环境后台的进程 |
---|
ctrl+z | 把占用终端的进程打入后台 |
fg+jobsnum | 把后台的进程调回前台 |
bg+jobsnum | 把后台暂停的进程运行起来 |
comm+& | 让命令直接运行在后台 |
进程信号
1 | 进程重新加载配置(进程不关闭的情况下重新加在配置) |
---|
2 | 删除进程在内存中的数据(不能是锁定的内存(锁定的空间数据被删除进程就会被关闭))(ctrl+c) |
3 | 除鼠标在内存中的数据(ctrl+\) |
9 | 强行结束单个进程(不能被阻塞) |
15 | 正常关闭进程(可能会被阻塞) |
18 | 运行暂停的程序 |
19 | 暂停某个进程(不能被阻塞) |
20 | 把进程打入后台(可以被阻塞) |
kill用法
kill -信号 进程pid
killall -信号 进程名字
进程的动态控制
l | 显示cpu每个核的负载 |
---|
s | 调整刷新频率 |
c | cpu负载排序 |
m | 内存使用量排序 |
h | 查看帮助 |
u | 查看指定用户进程 |
k | 对指定的进程发起信号 |
z | 显示颜色 |
b | 高亮显示 |
q | 退出 |
服务控制命令 systemctl
systemctl status sshd | 查看服务状态 |
---|
systemctl start sshd | 开启服务 |
systemctl stop sshd | 关闭服务 |
systemctl restart sshd | 重启服务 |
systemctl reload sshd | 重新加载服务配置 |
systemctl enable sshd | 设定服务开机启动 |
systemctl disable sshd | 设定服务开机不启动 |
systemctl list-units | 列出已经开启服务当前状态 |
systemctl list-unit-files | 列出所有服务器开机启动的状态 |
systemctl list-dependencies | 列出服务的依赖 |
systemctl set-default multi-user.target | 设定系统启动级别为无图形模式 |
systemctl set-default graphical.target | 设定系统启动级别为图形模式 |