Linux(进程和计划任务管理)
只增进程
控制进程
一次性任务设置
mcrontab用期性任没里
1.程序和进程的关系
程序
- 保存在硬盘、光盘等介质中的可执行代码和数据
- 文件中静态保存的代码
进程
-
在CPU及内存中运行的程序代码
-
动态执行的代码
-
父、子进程
每个程序可以创建一个或多个进程
2.查看进程信息ps
ps命令
- 查看静态的进程统计信息
(必须要带 -)
ps -elf
-e:显示系统内的所有进程信息。
-l:使用长格式显示进程信息
-f:使用完整的格式显示进程信息。
-a:显示现行终端下的所有进程
-T :查看线程信息
-
ps aux --sort -&cpu | head -10 按cpu降序排列,-为降序,+为升序,p与&同义
-
ps aux --sort +pmem | head -n 10 按内存升序排列
-
ps aux --sort -pcpu,+pmem | head -n 10
字段解释
ps aux 同 ps -aus 作用相同
ps aux
a:显示终端上的所有进程,包括其它用户的进程
u:表示列出进程的用户。
x:显示所有终端的进程。
字段解释
僵尸进程
-
一个进程结束了,但是如果该进程的父进程已经先结束了。那么该进程就不会变成僵尸进程.
-
因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程,看有没有哪个进程是刚刚结束的这个进程的子进程,如果是的话,就由Init来接管它,成为它的父进程,子进程退出后init会回收其占用的相关资源.
-
但是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程
3.查看进程信息top
top命令
- 查看动态的进程排名信息
top 命令一查看进程动态信息
- 第一行是任务队列信息
18:50:51 : 系统时间
up 1:45: 系统已运行时长
2 user: 当前登录用户数
load average: 0.06,0.60,0.48 系统负载,即单位时间内系统处理的任务数,后面三个数值分别为1分钟、5分钟、15分钟前到现在的平均值
(处于70%为正常,长时间处于80%时,为高负荷运行)
- w ,uptime 也可以查看系统的负载情况
- 第二行为进程信息
- 第三行为CPU的信息
- 第四行为内存的信息
- 第五行行为交换空间的信息
Cup(s)代表所有的cpu
按1显示每个Cpu的显示情况
- 进程信息区各列解释
top常用命令
-
top -H: 显示所有线程
-
top -H -p : 显示特定进程中的线程
总结
查看进程信息pgrep
pgrep命令
-根据特定条件查询PID信息
- pgrep -l “1og”
- ps aux | grep (终端名)
- pgrep “log”
- pgrep -l -U(用户)“log”
查看进程树pstree
pstree命令
- 以树形结构列出进程信息
进程的启动方式
手工启动
-
前台启动:用户输入命令,直接执行程序
-
后台启动:在命令行尾加入”&“符号
调度启动
- 使用at命令,设置一次性计划任务
- 使用crontab命令,设置周期性计划任务
进程的前后台调度
- Ctrl+Z组合键
将当前进程挂起,即调入后台并停止执行
- jobs命令
jobs 【-l】
查看处于后台的任务列表
- fg命令
将后台进程恢复到前台运行,可指定任务序号
终止进程的运行2-1
- Ctrl+C组合键
中断正在执行的命令
- kill、killall命令
kill用于终止指定PID号的进程
killall用于终止指定名称相关的所有进程
-9选项用于强制终止 (注意使用)
补充(kill)
-
我们经常会用到ki11命令去杀死一个进程,但是有时会出现ki11不成功的现象,这是就要用到ki11 -9
-
之所以这两个命令会有区别是因为所发送的信号(Signal)是不同的。默认情况下ki11命令的参数为-15
-
ki11 -15代表的信号为SIGTERM,这是告诉进程你需要被关闭,请自行停止运行并退出
-
而ki11 -9代表的信号是SIGKIIL,表示进程被终止,需要立即退出
-
因此ki11 -9表示强制杀死该进程,这个信号不能被捕获也不能被忽略。
终止进程的运行2-2
pkill命令
-
根据特定条件终止相应的进程
-
常用命令选项
pkill -U<用户名>
pkill -t <终端名>
pkill +,<关键词> 也可以打到杀死进程的作用 (可能会误杀)
-U: 根据进程所属的用户名终止相应进程
-t: 根据进程所在的终端终止相应进程
计划任务管理at-1
at 命令
- 一次性计划任务
at [小时:分钟] [年-月-日]
计划任务管理at2-2
计划任务管理crontab2-1
crontab命令
-
按照预先设置的时间周期(分钟、小时、天、月、周)重复执行用户指定的命令操作
-
属于周期性计划任务
-
主要设置文件
*全局配置文件,位于文件: /etc/crontab
系统默认的设置,位于目录: /etc/cron.*/
用户定义的设置,位于文件: /var/spool/cron/用户名
计划任务管理crontab2-2
管理crontab计划任务
- 编辑计划任务
crontab -e [-u 用户名]
- 查看计划任务
crontab -l [-u 用户名]
- 删除计划任务
crontab -r [-u 用户名]
crontab任务配置的格式2-1
crontab任务配置的格式2-2
时间数值的特殊表示方法
-
*表示该范围内的任意时间
-
,表示间隔的多个不连续时间点
-
-表示一个连续的时间范围
-
/指定间隔的时间频率
应用示例1
-
0 17 * * 1-5 周一到周五每天17:00
-
30 8 * * 1,3,5 每周一,三,五的8点30分
-
0 8-18/2 * * * 8点到18点之间每2小时
-
0 * * /3 * * 每3天的每个小时0点执行
示例2
1.每分钟定时执行执行一次规则
每1分钟执行: */1 * * * 或者 * * * *
每5分钟执行: * /5 * * * *
2.每小时定时执行一次规则:
每小时执行:0 * * * *或者0 */1 * * *
每天上午7点执行:0 7 * * *
每天上午7点10分执行:10 7 * * *
3.每天定时执行一次规则:
每天执行 0 0 * * *
4.每周定时执行一次规则:
每周执行0 0 * * 1
5.每月定时执行一次规则:
每月执行 0 0 1 * *
6.每年定时执行一次规则:
每年执行 0 0 1 1 *
例:
每个年的2或12月份的前15天的朝九晚五期间的第30分钟执行 ls 操作