一、程序和进程
程序:保存硬盘、光盘等介质中的可执行代码和数据;文件中静态保存的代码
进程:在CPU及内存中运行的程序代码;动态执行的代码;父子进程;每个程序可以创建一个或者多进程
线程与进程有什么区别:是程序的副本,就是把进程复制了一份,
只复制了进程的部分代码。真正执行的是线程而不是进程。相当于是进程的打工仔
查看进程信息
ps命令
- ps命令
ps -aux
常用选项
-a:显示终端上的所有进程,包括其它用户的进程。
-u:表示列出进程的用户
-x:显示所有终端的进程。
[root@192 ~]# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.1 0.3 128164 6828 ? Ss 21:35 0:00 /usr/lib/systemd/systemd
USER:进程的用户
PID:进程的ID
%CPU:进程占用的CPU百分比
%MEM:占用内存的百分比
VSZ:该进程使用的虚拟内存量(KB)
RSS:该进程占用的物理内存量(KB)
TTY:启动进程的终端名。不是从终端启动的进程则显示为?
**STAT:该行程的状态(D:不可中断的休眠状态;R:正在运行状态;S:处于休眠状态,可被唤醒;T:停止状态,可能是在后台暂停或进程处于跟踪调试状态;**z:僵尸进程,进程已经中止,但是部分程序还在内存当中)
START:该进程被触发启动时间
TIME:该进程实际使用CPU运行的时间
COMMAND:进程的启动命令
ps -elf 命令
ps -elf
-e:显示系统内的所有进程信息
-l:使用长格式显示进程信息
-f:使用完整的格式显示进程信息
[root@192 ~]# ps -elf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 1 0 0 80 0 - 32041 ep_pol 21:35 ? 00:00:00 /usr/lib/syste
F:内核分配给进程的系统标记
S:进程的状态
UID:启动这些进程的用户
PID:进程的进程ID
PPID:父进程的进程号(如果该进程是由另一个进程启动的)
C:进程生命周期中的CPU利用率
PRI:进程的优先级(越大的数字代表越低的优先级)
NI:谦让度值用来参与决定优先级
ADDR:进程的内存地址
SZ:假如进程被换出,所需交换空间的大致大小
WCHAN:若该进程在睡眠,则显示睡眠中的系统函数名
STIME:进程启动时的系统时间
TTY:进程启动时的终端设备
TIME:运行进程需要的累计CPU时间
CMD:进程的启动命令
查看动态进程
top 命令(查看动态进程信息)
top常用命令:
P键:根据CPU使用百分比大小进行排序
M键:根据驻留内存大小进行排序
N键:根据启动时间进行排序
c键:切换显示命令名称和完整命令行
h键:可以获得 top程序的在线帮助信息
k键:根据提示输入指定进程的 PID 号并按 Enter 键终止对应的进程
q键:退出 top 程序
数字1键:显示CPU个数和状态
top行:任务队列信息
18:54:31 系统时间
up 4:37系统已运行时长
3 user 当前用户登录数
load average 0.00,0.07,0.07 系统负载,单位时间内系统处理的任务数,这三个数分别为1分钟,35分钟,21分钟前到现在的平均值
Tasks行:进程信息
total:总进程数
running:正在运行的进程数
sleeping:休眠进程数
stopped:中止的进程数
zombie:僵尸无响应进程数
%CPU行:CPU的信息
us:用户占用
sy:内核占用
ni:优先级调度占用
id:空闲cpu
wa:I/O等待占用
hi:硬件中断占用
si:软件中断占用
st:虚拟化占用
注意:要想了解空闲的CPU百分比,主要看%id部分
Mem行:内存占用信息
total:总内存空间
used:已用内存
free:空闲内存
buffers:缓冲区域
Swap行:交换空间信息
total:总交换空间
free:空闲交换空间
used:已用空间交换
avail Mem:可用物理空间
pgrep 命令
根据特定条件定向查找进程PID
-
pgrep -l "log" #-l:显示进程名,缺省时只输出PID号
-
pgrep -l -U gcc -t tty2 #--U:指定特定用户 -t:指定终端
查看进程树pstree
以树形结构更加直观的判断出各进程之间的相互关系,结合 “-p” 可以列出对应的PID号, “-u” 可以列出各进程用户名, “-a ” 列出完整的命令信息
pstree -aup
jobs命令
查看处于后台的任务列表
常用的参数
-l:选项可以同时显示该进程对应的PID号
将后台的进程恢复运行
使用 bg(BackGround,后台)命令,可以将后台中暂停执行(如按 Ctrl+Z 组合键挂起)的任务恢复运行,继续在后台执行操作;
使用 fg 命令(ForeGround,前台),可以将后台任务重新恢复到前台运行。
除非后台中的任务只有一个,否则 bg 和 fg 命令都需要指定后台进程的任务编号作
为参数。
终止进程执行
当用户在前台执行某个进程时,可以按Ctrl+C组合键强制进行中断(如命令长时间没有响应的情况下)。
中断前台进程的运行后,系统将返回命令行提示符状态等待用户输入新的命令。当按 Ctrl+C 组合键无法终止程序或者需要结束在其他终端或后台运行的进程时, 可以使用专用的进程终止工具 kill、killall
使用 kill 命令终止进程
通过 kill 命令终止进程时,需要使用进程的 PID 号作为参数。无特定选项时,kill 命令将给该进程发送终止信号并正常退出运行,若该进程已经无法响应终止信号,则可以结合“-9” 选项强行终止进程。强制终止进程时可能会导致程序运行的部分数据丢失,因此不到不得已时不要轻易使用“-9”选项。
使用 killall 命令终止进程
使用 killall 命令可以通过进程名称来终止进程,当需要结束系统中多个相同名称的进程时,使用 killall 命令将更加方便,效率更高。killall 命令同样也有“-9”选项。
crontab周期性任务设置
牢记:时间周期(分、时、日、月、周)
重复执行用户指定的命令操作,是属于周期性计划任务
主要的配置文件
全局配置文件:文件位于:/etc/crontab
系统默认的设置:目录位于:/etc/cron.*/
用户定义设置。文件位于:/var/spool/cron/用户名
管理计划任务
编辑: -e 【-u 用户名】
查看: -l 【-u 用户名】
删除: -r 【-u 用户名】
注意:如果 -u 不存在就默认为当前用户
计划任务的配置格式
字段 | 说明 |
---|---|
分钟 | 0 到 59 任意整数 |
小时 | 0 到 23 任意整数 |
日期 | 1 到 31 任意整数 |
月份 | 1 到 12 任意整数 |
星期 | 0 到 7 任意整数,0和7表示星期日 |
示例:
每1分钟执行: /1 * * * *
每五分钟执行: /5 * * * *
每小时执行: * 0 * * *
每天上午7点执行:0 7 * * *