一,查看进程
1.程序和进程的关系
程序
- 保存在硬盘,光盘等介质中的可执行代码和数据
- 文件中静态保存的的代码
进程 - 在CPU及内存中运行的程序的代码
- 动态执行的代码
- 父 子进程(centos7中父进程为system))
- 每个程序可以创建一个或多个进程(但一个进程只能对应一个程序)
区别;进程是动态的而程序是静态的;一个程序可以对应多个进程,但一个进程只能对应一个程序;进程由程序,数据,和进程控制块(PCB)三部分组成,而程序是一组有序的指令集和;进程有一定生命周期,没有建立进程的程序不能作为一个独立单位得到操作系统的认可进程是计算机中的程序关于某数据集合上的一次运性活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础
2.查看进程信息
ps命令静态查看进程
查看静态进程统计信息
ps -elf
-e;显示系统内的所有进程信息
-l;是长格式显示进程信息
-f;使用完整的格式显示进程信息
查询各列的解释
ps elf 只能查询五行内容
查看静态进程统计信息
ps -aux 或 ps aux
- a;显示终端上的所有进程,包括其他用户的进程
- u;表示列出进程的用户
- x;显示所有终端的进程
各列显示参数解释
VSZ显示交换分区大小;START 时间分片运行的时间
查看进程中的线程
ps -aT 查看所有进程中的线程
ps -T -p <pid> 查看指定进程中已经起的线程
2.top 动态查看进程
进入top查询界面按下数字 1 可以查看每个CPU占有率
top查询每行参数解释
进程各列解释
load average: 0.02, 0.03, 0.05
查看load average 平均负载的命令
top w uptime
参数解析
根据cpu数量决定平局负载值 如果超过cpu数量长时间超过80%或85%认为超负荷 低于70%属于正常
top常用命令
进入top查询进程界面 按’K‘输入程序号可以直接杀程序
top -H 显示所有线程
top -H -p <pid> 显示特定进程中的线程
补充命令
与top命令相似的
- atop(需要安装) iotop(查看io信息)htop iftop (查看流量相关)
- 查看io 命令有 iostat iotop atop vmstat
- 查看内存 命令有free -m vmstat atop
- 查看cpu 命令有top vmstat atop
- 查看网卡流量 命令有ifconfig iftop
- 磁盘使用情况 命令有 df du
- 进程情况 命令有ps top atop htop
进程排序显示
ps aux --sort -%cpu | head -10
按cpu降序排列,-为降序,+为升序,p与%同义 只显示前十行
head -10 = head -n 10 --sort为选项
ps aux --sort +pmem | head -n 10
内存按升序排列 只显示前十行
ps aux --sort -pcpu,+pmem | head -n 10
cpu 降序 内存升序 排列查询前十行
**查看进程信息 pgrep **
根据特定条件查询进程pid信息
pgrep -l <字符串> -l 显示进程名 缺省时只显示pid号
首先打开两个进程
在终端1上查看”vim"进程
如果不加 -l 只显示pid号
pgrep -l -U <用户名> -t <终端>
-U 指定用户 -t 指定终端
在终端2中打开vim进程
在终端1中根据用户名 指定进程 查看用户中的进程
注意 如果用户名后不加进程显示此用户所有进程
查看进程树pstree
pstree 已树形结构列出进程信息
pstree -aup
-a 显示完整信息
-u 列出对应用户名
-p 列出对应pid号
也可以查看切换环境变量(bash)记录和次数
pstree -aup <用户>
只查看用户进程信息树
二,进程启动方式
1.手工启动
-
前台启动;用户输入命令,直接执行程序
一直占用前端界面,无法进行其他操作
-
后台启动;在命令行尾加入“&”符号
腾出前端可以操作其它任务 后台会自行运行
其中会有两个输出数字 信息
第一个表示任务号 第二个表示pid 号
cp -r /mnt /opt &
复制/mnt目录到/opt目录下 &表示后台运行
cp 复制目录要加 -r
ps aux 查看执行进程
2.进程的调度
-
进程的前后台调度
Ctrl + Z组合键
将当前进程挂起,即调入后台并停止执行
-
jobs命令
jobs [-l] -l显示进程名 不加-l 只显示进程号
查看处于后台的任务列表
- fg 命令
fg
将后台进程恢复到前台运行,可指定任务号
或者多开几个终端在不同终端操作也是同样效果
kill killall命令(通过执行命令发送信号给进程的形式让进程终止)
- kill用于终止指定PID的进程
首先建立两个进程
查看进程PID 号
kill <pid> 或 kill -s <信号> <PID>
杀掉进程
查看进程
- killall用于终止指定名称相关的所有进程
killall <进程名>
杀掉所有运行的此进程
- -9 选项用于强制终止(生产环境慎用)
kill -9 <PID>
强制杀掉进程
kill -15 SIGTERM 自行停止运行并退出(默认不带任何参数)
kill -9 SIGKILL 需要立即退出
kill -3 SIGQUIT 退出时 会打印一份日志到/proc 目录中
- pkill命令
根据特定条件终止相应的进程
pkill
- U 根据进程所属的用户名终止相应进程
pkill -9 -U 'tset1'
强杀用户tset1 进程(杀掉非法登录账户杀掉bash进程)
-t 根据进程所在的终端终止相应进程
pkill -9 -t "pts/3"
强制杀掉终端’pts/3'的进程
pts/3 连接终端
三,计划任务管理
一次性计划任务
at命令
at 【HH;MM】 【yyy-mm-dd]
HH时 MM分钟 yyy 年 mm 月 dd 日
如果后边不加yyy-mm-dd 表示当天 执行操作
ctrl + D 键提交任务
atq
查看设置未执行任务
atrm <任务号>
删除对应任务号 任务
任务号
计划任务周期性
crontab 命令
- 按照预先设置的时间周期(分 时 日 月 周)重复执行用户指定的命令操作
- 属于周期性计划任务
全局配置文件,位于文件:/etc/crontab
系统默认的设置,位于目录:/etc/cron.*/
用户定义的设置,位于文件:/var/spool/cron/用户名
编辑计划任务
crontab -e [-u 用户名】
不加-u 表示对当前登录用户设置
查看计划任务
crontab -l [-u 用户名】
删除计划任务
crontab -r [-u 用户名】
crontab任务格式
任务内容设置命令或程序要用绝对路径
字段参数
周的数字为0或7时,都是代表‘星期天’的意思
时间数值的特殊符号表示方法
示列
0 17 * * 1-5
表示每周一到周五17:00
30 8 * * 1,3,5
表示每周一,三,五8点30分
0 8-18/2 * * *
表示8点到18点之间每2小时
0 * */3 * *
表示每3天每小时零分(整点)
0 * * * * 或者 0 */1 * * *
表示每小时执行一次
30 5 8 6 7
日 月 星期同时存在 等于 “或” 的效果 两个条件都会满足
表示每周 5:30 或每年6月8号5:30执行一次
编辑周期计划任务
1.先查看crontab 服务是否开启
systemctl status crond.service
查看crontab 服务
2.编辑周期计划任务
开启状态编辑才生效,否则不会生效
编辑任务内容也就是命令或者脚本文件使用绝对路径,查命令路径使用whic
crontab -e
直接对当前登录用户编辑 编辑操作如同vim
编辑完成后 wq 保存退出
或者也可以编辑/etc/crontab文件实现任务编辑
格式 分时日月周 用户名 命令的绝对路径
查看周期任务
crontab -l
查看当前用户设置周期任务
删除周期任务
crontab -r
删除当前用户设置任务
==编辑任务存放位置在 ==
/var/spool/cron/用户名文件
/var/spool/cron/ 目录
用户名文件 ;文件名称与编辑的用户名一致的文件