进程的延迟与周期调度
进程的概念
进程:开始执行但是还没有结束的程序的实例
程序:包含可执行代码的文件
进程由程序产生,是一个运行着的、要占系统资源的程序,进程不等于程序。
进程分为:交互进程、批处理进程、守护进程。
进程与程序是多对一关系
进程的查看
命令语法:ps [选项]
选项说明:
-a:显示系统中所有进程的信息,与-e 具有相同的功能。
-a:显示所有用户进程的信息。
-f:完整的显示进程的所有信息。
-l:以长格式显示进程信息。
-r:只显示正在运行的进程。
-u:显示面向用户的格式(包括用户名、cpu 及内存使用情况等信息)。
-x:显示所有非控制终端上的进程信息。
-p:显示由进程 id 指定的进程的信息。
-t:显示指定终端上的进程的信息。
查看各进程继承关系的命令
pstree 命令以树状结构显示系统进程的继承关系。树状图将会以 pid (如果有指定) 或是以 init 为根,如果指定 user,则树状结构只显示该用户所拥有的进程。
命令格式:pstree [选项] [pid|user]
选项说明:
-a:显示该进程的完整继承关系,如果是被内存置换出去的进程则会加上括号。
-c 如果有重复的进程名, 则分开列出 (默认值是会在前面加上 * )。
pid|user:查看指定根进程(pid)或用户(user)所拥有的进程。
进程的终止
kill [信号代码] pid
killall [信号代码] 进程名
通过
ps -aux 显示进程
pstree查看子进程
进程的调度
延迟性调试
功能:指定时间运行指定的程序
格式:at [-f 文件] [-m ] 时间
-f : 指定存放计划执行命令的文件
-m: 作业结束后发送邮件给执行 at 命令的用户
时间:任务执行的时间,可采用相对和绝对两种方法
绝对表示法: mmddyy 或 mm/dd/yyyy, today 或 tomorrow 来表示今天或明天
相对表示法:now+num+时间单位,其中的时间间隔可以是 minutes, hours, days, weeks
at now+1 minutes 明天执行
at> echo "hell" > /dev/pts/2 回车
ctrl+d 结束
at -f 指定文件 17:30+2 days
周期性调度
功能:计划调度服务
crontab –u user {-e | -l | -r}
-u:为指定的用户设置计划任务
-e:编辑计划任务列表
-l:查看指定用户的计划任务列表,默认为当前用户
-r:删除用户的计划任务列表
crontab –u user file (其中 file 代表任务列表文件)
任务列表文件的格式:minute hour day month day-of-the-week run_command
crontab -u 用户名 -e 编辑/创建任务列表
00 00 */3 * * 命令路径 [参数]
crontab -l 查看
crontab -u 用户 -r 删除任务 命令得是绝对路径
00 00 */3 * * 命令路径
分钟 小时 日期 月份 星期 命令
时间数值表示
* 表示该范围内的任意时间
, 表示间隔的多个不连续时间点
- 表示一个连续的时间范围
/ 指定时间间隔的时间频率
应用示例
周一到周五每天17:00
0 17 * * 1-5
每周一、三、五的八点30分
30 8 * * 1,3,5
8点到18点之间每隔2小时
0 8-18/2 * * *
每隔3三天
0 * */3 * *
计划目录列表存放位置
/var/spool/scron/root