文章目录
进程信息&计划管理
1 查看进程信息
1.1 ps [-]aux
a 显示终端上所有进程,包括其他用户的进程
u 表示列出进程的用户
x 显示所有终端的进程
各项意义
USER | 表示进程的用户 |
---|---|
PID | 进程的ID |
%CPU | 进程占用的CPU百分比 |
%MEM | 占用内存的百分比 |
VSZ | 该进程使用的虚拟内存(交换分区)量KB |
RSS | 该进程占用的物理内存量KB |
TTY | 启动进程的终端名,不是从终端启动的进程则显示为? |
STAT | 进程的状态1 |
START | 该进程被触发启动时间 |
TIME | 该进程实际使用CPU运行的时间 |
COMMAND | 进程的启动命令 |
1.2 ps -elf
-e 显示系统内的所有进程信息
-l 使用长格式显示进程信息
-f 使用完整的格式显示进程信息
-a 显示现行终端下的所有进程
-T 查看线程信息
ps -aT 显示所有线程
ps -T -p <pid> 查看指定进程中已经起的进程
ps -L <pid> 查看指定进程中的线程信息
1.3 top
top能查看动态的进程信息
1.3.1 第一行任务队列信息
17:06:48为系统时间
up 2days 系统已经运行的时长
1 users 当前登录用户数
load average : 0.00 0.01 0.0.5 即系统负载,单位时间内系统处理的任务数,后面三个数值分别为1分钟、5分钟、15分钟前到现在的平均值
1.3.2 第二行行为进程信息
Tasks:248 total 总进程数
1 running 正在运行的进程数
247 sleeping 休眠的进程数
0 stopped 中止的进程数
0 zombie 僵死的进程数
1.3.3 第三行行为CPU的信息
0.2 us 用户占用
0.0 sy 内核占用
0.0 ni 优先级调度占用
99.8 id 空闲CPU,要了解的空闲的CPU百分比,主要看%id部分
0.0 wa I/O等待占用
0.0 hi 硬件中断占用 Hardware interrupt occupancy
0.0 si 软件中断占用 Software interrupt occupancy
0.0 st 虚拟化占用
1.3.4 第四行内存的信息
total 总内存空间
free 空闲内存
used 已用内存
buff/cache 物理内存和交换内存的缓冲区总和
1.3.5 交换空间的信息
total 总交换空间
free 空闲内存
used 已用交换空间
avail Mem 可用物理空间
1.3.6 进程信息区各列
PID 进程id
USER 进程所有者的用户名
PR 优先级
NI 谦让度值
VIRT 进程使用的虚拟内存总量
RES 进程使用的物理内存大小
SHR 共享内存大小
S 进程状态
%CPU 上次更新到现在的CPU时间占用百分比
%MEN 进程使用的物理内存百分比
TIME 进程使用的CPU时间总计,单位1/100秒
COMMAND 命令名/命令行
2 常用命令
2.1 top 常用命令
2.2 pgrep
-l 显示进程名 缺省时只输出PID号
-U 指定特定用户
-t 指定终端
pgrep -l "进程名"-U 特定用户名 -t 指定终端名
2.3 pstree
查看进程树
-a 显示完整信息
-u 列出对应用户名
-p 列出对应PID号
pstree -aup
pstree -ap [用户名] 只查看属于特定用户的进程树结构
2.4 kill
用于终止指定PID号的进程
killall用于终止指定名称相关的所有进程
kill -l 查看所有参数
kill -s SIGKILL <PID>
Kill命令的参数为-15代表的是SIGTERM,这是告诉你需要被关闭,请自行停止运行并退出
Kill -9 代表的是SIGKILL,表示进程被终止,需要立即退出
2.5 pkill
根据特定条件终止相应的进程
-U根据进程所属的用户名终止相应进程
-t 根据进程所在的终端终止相应进程
3 进程启动
3.1 手动启动
- 前台启动:用户输入命令,直接执行程序
- 后台启动:在命令行尾加入"&"符号
3.2 调度启动
- 使用at命令,设置一次性计划任务
- 使用crontab命令,设置周期性计划任务
3.3 前后台调度
Ctrl+Z
将当前进程挂起,即调入后台并停止执行jobs -l
查看处于后台的任务列表fg
将后台进程恢复到前台运行,可指定任务序号
4 计划任务
4.1 一次性计划任务
at [HH:MM] [yyyy-mm-dd] 小时:分钟 年-月-日
如果不携带日期则表示为当天
at > echo 'helloworld' > /opt/test.txt
在特定时间会在/opt/test.txt中写入helloworld
ctrl+d 提交任务
atq 查看未执行的任务列表
atrm 1 删除第一条任务
4.2 crontab 任务配置
按照预先设置的时间周期
按照分 时 日 月 周 重复执行用户指定的命令操作
编辑计划任务
crontab -e [-u 用户名] 不指定就是当前用户
查看计划任务
crontab -l [-u 用户名]
删除计划任务
crontab -r [-u 用户名]
时间数值的特殊表示方法
- *表示该范围内的任意时间
- ,表示间隔的多个不连续时间点
- -表示一个连续的时间范围
- /指定间隔的时间频率
各种实例
可以实践一下
比如:每年的2或3或4月的前15天的下午6点35进行关机操作
crontab -e -u root
35 18 1-15 2,3,4 * /usr/sbin/poweroff
成功!