目录
一、查看进程的命令(ps、top、pgrep、pstree)
2.3.3 pkill(根据进程名称、运行该进程的用户、进程的终端等指定)
at [HH:MM] [yyyy-mm-dd](时间+日期)
一、查看进程的命令(ps、top、pgrep、pstree)
1.1 ps(查看静态的进程统计信息)
常用的参数
- -a:显示当前终端下的所有进程信息,包括其他用户的进程。与“x”选项结合时将显示系统中所有的进程信息
- -u:使用以用户为主的格式输出进程信息
- -x:显示当前用户在所有终端下的进程信息
- aux:将以简单列表的形式显示出进程信息
- -e:显示系统内的所有进程信息
- -l:使用长格式显示进程信息
- -f:使用完整的格式显示进程信息
- elf:将以长格式显示系统中的进程信息
USER | 启动该进程的用户账号的名称 |
PID | 该进程在系统中的数字 ID 号,在当前系统中是唯一的 |
%CPU | CPU 占用的百分比 |
%MEM | 内存占用的百分比 |
VSZ | 该进程使用的虚拟内存量(KB) |
RSS | 该进程占用的物理内存量(KB) |
TTY | 表明该进程在哪个终端上运行。不是从终端启动的进程则显示为? |
STAT | 进程的状态: D:不可中断的休眠状态 R:该程序目前正在运作,或者是可被运作 S:该程序目前正在睡眠当中 (可说是 idle 状态啦!),但可被某些讯号(signal) 唤醒 T:停止状态,可能是在后台暂停或进程处于跟踪调试状态 Z:僵尸进程:该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态【简单来说:父进程中止,子进程继续运行】 <:表示进程运行在高优先级上 +:表示当前进程运行在前台 |
START | 启动该进程的时间 |
TIME | 该进程占用的 CPU 时间 |
COMMAND | 启动该进程的命令的名称 |
F | 内核分配给进程的系统标记 |
S | 进程的状态 |
UID | 启动这些进程的用户 |
PID | 进程的进程ID |
PPID | 父进程的进程号(如果该进程是由另一“个进程启动的) |
C | 进程生命周期中的CPU利用率 |
PRI | 进程的优先级(越大的数字代表越低的优先级) |
NI | 谦让度值用来参与决定优先级 |
ADDR | 进程的内存地址 |
SZ | 假如进程被换出,所需交换空间的大致大小 |
WCHAN | 若该进程在睡眠,则显示睡眠中的系统函数名 |
STIME | 进程启动时的系统时间 |
STAT | -D:不可被唤醒的睡眠状态,通常用于 I/O 情况。 -R:该进程正在运行。 -S:该进程处于睡眠状态,可被唤醒。 -T:停止状态,可能是在后台暂停或进程处于除错状态。 -W:内存交互状态(从 2.6 内核开始无效)。 -X:死掉的进程(应该不会出现)。 -Z:僵尸进程。进程已经中止,但是部分程序还在内存当中。 -<:高优先级(以下状态在 BSD 格式中出现)。 -N:低优先级。 -L:被锁入内存。 -s:包含子进程。 -l:多线程(小写 L)。 -+:位于后台。 -C:进程占用CPU的百分比 |
TTY | 进程启动时的终端设备 pts/0255代表虚拟终端,一般是远程连接的终端 tty1、tty7 代表本地控制台终端 |
TIME | 运行进程需要的累计CPU时间 |
COMMAND | 进程的启动命令 |
例一:查看进程状态
例二:D 不可中断状态
不断输入命令进行刷新
例三:Z 僵尸进程
恢复
kill -18 45680
1.2 top(查看进程动态信息)
1.2.1 top 显示基本信息介绍
15:23:03 | 当前时间 |
up 1 day | 系统运行时间(说明此服务器运行一天) |
2 users | 当前登录用户数 |
load average: 0.00, 0.01,0.05 | 系统负载,即任务队列的平均长度。 三个数值分别为 1 分钟、5 分钟、15 分钟前到现在的平均值 |
Tasks:系统任务信息 | 193 total:193个总进程数 |
running | 正在运行的进程数 |
sleeping | 休眠的进程数 |
stopped | 中止的进程数 |
zombie | 僵死无响应的进程数 |
%cpu (CPU 占用信息) | us:用户占用 sy:内核占用 ni:优先级调度占用 id:空闲CPU百分比 wa:等待占用(等待I/0 完成的时间总量) hi:系统中断占用(硬件中断占用) si:软件中断占用 st:虚拟化占用 |
KiB Men (内存占用信息) | total:总内存空间 free:空闲内存 used:已用内存 buff/cache:物理内存和交换内存的缓冲区总和 |
KiB Swap (交换空间占用) | total:总交换空间 free:空闲交换空间 used:已用交换空间 avail Mem:可用物理空间。 |
PID | 进程 id |
USER | 进程所有者的用户名 |
PR | 优先级(由内核动态调整),用户不能 |
NI | 进程优先级 nice 值。负值表示高优先级,正值表示低优先级,用户可以自己调整 |
VIRT (virtual memory usage) | 虚拟内存,是进程正在使用的所有内存(ps 中标为 VSZ) 注:
|
RES(resident memory usage | 进程所使用的物理内存 注:
|
SHR | 共享内存大小 注:
|
S | 进程状态: D=不可中断的睡眠状态 |
%CPU | 上次更新到现在的 CPU 时间占用百分比 |
%MEM | 进程使用的物理内存百分比 |
TIME+ | 进程使用的 CPU 时间总计,单位 1/100 秒 |
COMMAND | 命令名/命令行 |
1.2.2 top 命令全屏操作界面快捷键
默认 3s 刷新一次,按 s 修改刷新时间按空格 :立即刷新。
P:按 CPU 排序
M:按内存排序
T:按时间排序
p: 进程 IP,查看某个进程状态
N 键根据启动时间进行排序
数字键 1:显示每个内核的 CPU 使用率u/U:指定显示的用户
h:可以获得 top 程序的在线帮助信息
q:键可以正常地退出 top 程序
注:若通过 top 排名工具发现某个进程 CPU 占用率非常高,需要终止该进程的运行,
可以在 top 操作界面中按 k 键,然后在列表上方将会出现“PID to signal/kill [default pid = 3180]:” 的提示信息,根据提示输入指定进程的 PID 号并按 Enter 键, 出现“Send pid 5597 signal [15/sigterm]”的二次确认的提示信息,然后按Enter 键确认即可终止对应的进程
1.3 pgrep(查询进程基本信息)
常用的参数
-l:选项可同时输出对应的进程名以及PID
-U:选项查询特定用户的进程
-t:选项查询在特定终端运行的进程
例1
例2
1.4 pstree(以树形结构列出进程信息)
pstree 命令默认情况下只显示各进程的名称
常用参数
-p:选项使用时可以同时列出对应的PID号
-u:选项可以列出对应的用户名
-a:选项可以列出完整的命令信息
-aup:包括各进程对应的PID 号、用户名、完整命令等信息
二、进程控制(启动进程、调度进程、终止进程)
2.1 启动进程
①手工启动进程:由用户手工输入命令或者可执行程序的路径,可以至少启动一个进程
注:手工启动又可以分为前台启动和后台启动
前台启动:进程执行结束并退出以后才能继续输入其他命令
后台启动:
②调度启动进程:at、crontab
补充:挂起当前的进程
当Linux操作系统中的命令正在前台执行时(运行尚未结束),按Ctrl+Z组合键可以将当前进程挂起(调入后台并停止执行),这种操作在需要暂停当前进程并进行其他操作时特别有用。例如,打包usr并且调入后台 ,可以按 Ctrl+Z 组合键将该下载任务调入后台并暂停执行
2.2 调度进程(jobs)
2.2.1 jobs:查看处于后台的任务列表
参数:
-l:选项可以同时显示该进程对应的PID号
2.2.2 bg + 后台进程序号
将后台中暂停执行(如按 Ctrl+Z 组合键挂起)的任务恢复运行,继续在后台执行操作
2.2.3 fg + 后台进程序号
可以将后台任务重新恢复到前台运行
2.3 中止进程
2.3.1 kill(根据PID 号作为指定)
kill -数字 PID(常与pgrep配合)
[root@localfzx ~]# pgrep -l "sshd" //查询目标进程的PID 号
5822 sshd
[root@localfzx ~]# kill 5822 //终止指定PID 的进程
[root@localfzx ~]# pgrep -l "sshd" //确认进程已终止
常用数字参数
信号编号 | 信号名 | 含义 |
0 | EXIT | 程序退出时收到该信息 |
1 | HUP | 挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止 的情况下重新初始化 |
2 | INT | 表示结束进程,但并不是强制性的,常用的 "Ctrl+C" 组合键发出就是一个 kill -2 的信号 |
3 | UIT | 退出 |
9 | KILLQ | 杀死进程,即强制结束进程 |
11 | SEGV | 段错误 |
15 | TERM | 正常结束进程,是 kill 命令的默认信号 |
2.3.2 killall(根据进程名作为指定)
killall [选项] [信号] 进程名(常与ps、pstree配合)
-i:交互式,询问是否要杀死某个进程
-I:忽略进程名的大小写
2.3.3 pkill(根据进程名称、运行该进程的用户、进程的终端等指定)
-U:根据进程所属的用户名终止相应进程
-t:根据进程所在的终端终止相应进程
三、at命令设置计划任务(单次性)
作用:使用at命令设置的计划任务只在指定的时间点执行一次,前提是对应的系统服务atd必须已经运行
at [HH:MM] [yyyy-mm-dd](时间+日期)
atq:查询at任务列表
atrm:删除at任务列表
atrm + 1 (删除序号为1的at任务列表)
四、crontab计划任务的配置字段(周期性)
注:时间周期顺序:分→时→天→月→周
主要设置文件
全局配置文件位置:/etc/crontab
系统默认的设置位置:/etc/cron.*
用户定义的设置位置:/var/spool/cron/用户名
管理crontab计划任务
编辑计划任务:crontab -e[-u 用户名]
在文本模式中进行编辑
例:50 7 * * * /usr/bin/systemctl start sshd.service
路径最好是绝对路径
查看计划任务:crontab -l [-u 用户名]
删除计划任务:crontab -r[-u 用户名]