Linux进程管理
进程的含义
进程(process)是一个静态的文件,是程序的一个副本,其存在生命周期,准备期-运行期-终止期。
进程的状态
状态 | 定义 |
---|---|
R(TASK_RUNNING) | 可执行状态(RUNNING,READING) |
S(TASK_INTERRUPTIBLE) | 可唤醒睡眠状态 |
D(TASK_UNINTEERUPTIBLE) | 不可唤醒睡眠状态 |
T(TASK_STOPPED) | 暂停状态 |
Z(EXIT_ZOMBIE) | 僵死状态 |
ps命令风格
分为三种:BSD、unix、GUN
BSD风格
a(显示与终端相关的进程)
x(显示与终端无关的进程)
u(以用户未归类信息显示进程状态信息)
f(层级结构显示进程信息)
o(显示指定参数的进程信息)
unix风格:
-e(显示所有进程)
-f(显示完整格式信息)
-H(层级结构显示进程相关信息)
-o(查看指定选项信息)
ps命令显示信息
字段 | 解释 |
---|---|
USER | 用户名称 |
PID | 进程id |
%CPU | CPU用量 |
%MEM | 内存用量 |
VSZ | 占用虚拟内存大小 |
RSS | 常驻内存大小 |
TTY | 字符终端 |
STAT | 进程状态 |
START | 运行时间 |
TIME | 占用CPU时间 |
COMMAND | 进程名称 |
ps排序显示信息
正序命令显示后6行:ps axo pid,comm,%cpu --sort=%cpu | tail -n 6
逆序显示前6行:ps axo pid,comm,%cpu --sort=-%cpu | head -n 7
进程过滤命令pgrep
pgrep 显示指定进程信息
- u id号 显示指定用户进程
- U name 显示指定用户进程
- t tty 显示指定终端进程
- l 显示进程名称
- a 显示完整格式进程名
- P pid 显示指定进程的子进程
pidof 进程名 查看进程id
top命令的用法
- top
- 外部参数
- -d 显示刷新时间
- -b 以批次显示
- -n 显示批次数量
- top内部参数
- P cpu百分比排序
- M 内存百分比排序
- T 累计占用cpu时间
- l 开启或者关闭uptime信息
- t 开启或关闭task&cpu信息
- s 调整刷新频率
- k 终止进程
- u 查看指定用户进程
进程优先级和NICE值
- 优先级范围:
- 对于Linux来说,优先级被划分为固定个数(0-139)
- 0-99为实时优先级,数字越大优先级越高,系统自己调用。
- 100-139,为静态优先级,数字越小,优先级越高。
- NICE值
- -20-19对应静态优先级
- 关于优先级命令
- nice -n 优先级 程序名 (手动设置程序优先级)
- renice -n 优先级 程序pid (修改优先级)
S | 进程状态 |
---|---|
I | 内存中有锁定空间(休眠时,不回收系统) |
N | 优先级低 |
< | 优先级高 |
+ | 前台运行(正在运行) |
s | 顶级进程 |
T | stop |
S | 睡眠 |
R | Running |
进程的前后台调用
jobs | 查看后台任务 |
---|---|
ctrl+z | 将程序打入后台并暂停任务 |
bg | 激活后台程序 |
fg | 调回程序 |
& | 程序运行在后台 |
守护进程systemd及systemctl管理命令
守护进程,替内核分担程序管控的程序,通常pid为1
systemctl管理系统服务
- systemctl
- 参数:start ##开启服务
- stop ##停止服务
- reload ##重新加载服务
- restart ##重启服务
- list-units ##查看所有服务当前状态
- list-unit-files ##查看服务开机状态
- list-dependencies ##查看服务依赖性
- enable ##开机自启动服务
- enable --now ##开机自启动并且现在就开启服务
- disable ##开机不自启动服务
- status ##查看服务状态
- mask ##冻结服务
- unmask ##解冻
- set-default ##设定系统运行模式
- ##multi-user.target 无图形界面
- ##graphical.target 有图形界面
- get-default ##查看系统运行模式
- ##0关机 1单用户root模式
- 2-4无图形界面模式 5图形界面模式
- 6 重启
进程信号和信号命令
可控信号类型 man 7 signal
可控信号 | 含义 |
---|---|
1 | 刷新(让进程重新读取配置,相当于systemctl reload) |
2 | 清空内存中的进程数据 |
3 | ctrl+/暂停鼠标的使用 |
9 | 强制结束 |
15 | 正常关闭 |
18 | 激活进程 |
19 | 强制暂停进程 |
20 | 正常暂停 |
信号命令:
信号指令:
kill 信号 pid
killall 信号 进程名
pkill 信号 进程名字
系统中的登陆审计
- w 显示正在登陆系统的账号
- -i 显示登陆来源
- /var/run/utmp
- last 登陆成功现在已经退出的
- /var/log/wtmp
- lastb 试图登录但未成功
- /var/log/btmp