Linux云计算——进程和任务管理

 前言

本章将会讲解Linux云计算中的进程和任务管理

本章架构

 一.程序和进程的关系

①程序

  1. 保存在硬盘、光盘等介质中的可执行代码和数据
  2. 静态保存的代码

②进程

  1. 在 CPU 及内存中运行的程序代码
  2. 动态执行的代码
  3. 父、子进程
  4. 每个进程可以创建一个或多个进程

二.查看进程信息

1.ps:查看静态的进程统计信息 
代码语言:javascript
复制
[root@localhost ~]# ps  -elf
2.top:查看动态的进程排名信息
代码语言:javascript
复制
[root@localhost ~]# top
3.pgrep命令

根据特定条件查询进程 PID 信息

代码语言:javascript
复制
[root@localhost ~]#  pgrep -l "log"
2538 rsyslogd
2113 mcelog 
[root@localhost ~]# pgrep -l -U teacher -t tty1
27483 bash
27584 vim

-l:显示进程名                                 -U:指定特定用户                                          -t:指定终端

4.pstree命令

以树形结构列出进程信息

三.进程的前后台调度

1.进程的前后台调度

  • 1>Ctrl+Z 组合键:将当前进程挂起,即调入后台并停止执行
  • 2>jobs 命令:查看处于后台的任务列表
  • 3>fg 命令:将后台进程恢复到前台运行,可指定任务序号

2.终止进程的运行

(1)kill、killall 命令
  • 1>kill用于终止指定PID号的进程
  • 2>killall用于终止指定名称的所有进程
  • 3>-9 选项用于强制终止
(2)pkill命令:根据特定条件终止相应的进程

 (-U:根据进程所属的用户名终止相应进程 -t:根据进程所在的终端终止相应进程)

代码语言:javascript
复制
[root@localhost ~]# pgrep –l -U "hackli"           
3045 bash
[root@localhost ~]# pkill -9  -U   "hackli”
[root@localhost ~]# pgrep -l  -U "hackli”

四.计划任务管理

1.at命令:一次性计划任务 

代码语言:javascript
复制
at  [HH:MM]  [yyyy-mm-dd]

(ctrl+D提交任务)(atq:查看     atrm:删除)

(1)案例

在当天的 21:30 时自动关闭当前系统

代码语言:javascript
复制
[root@localhost ~]# at 21:30
at> shutdown -h now
at> <EOT>
job 2 at Sun May  7 21:30:00 2017
代码语言:javascript
复制
[root@localhost ~]# atq #查看未执行的任务列表
2	Sun May  7 21:30:00 2017 a root
代码语言:javascript
复制
[root@localhost ~]# atrm 2  #删除第2条任务
[root@localhost ~]# atq

2.crontab命令:周期性计划任务

按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作

(1)主要设置文件
  •  全局配置文件,位于文件:/etc/crontab
  •  系统默认的设置,位于目录:/etc/cron.*/
  •  用户定义的设置,位于文件:/var/spool/cron/用户名
(2)管理cron计划任务

(-e:编辑计划任务    -l:查看    -r:删除)

代码语言:javascript
复制
crontab  -e  [-u  用户名]   #编辑计划任务
crontab  -I  [-u  用户名]   #查看计划任务
crontab  -r  [-u  用户名]   #删除计划任务
(3)crontab 任务配置的格式

分钟+小时+日期+月份+星期+命令 (*:表示该范围内的任意时间     ,:表示间隔的多个不连续时间点     -:表示一个连续的时间范围     /:指定间隔的时间频率)

(4)应用示例:            

   0  17  *  *  1-5    周一到周五每天17:00         
   30  8  *  *  1,3,5    每周一、三、五的8点30分      
   0  8-18/2  *  *  *    8点到18点之间每2小时        
   0  *  */3  *  *    每3天                     

本章总结

知识梳理

  1. 查看进程的命令(ps、top、pgrep、pstree)
  2. 进程控制
  3. 启动进程
  4. 调度进程(Ctrl+Z组合键、jobs、bg、fg)
  5. 终止进程(kill、killall、pkill)
  6. at命令设置计划任务
  7. crontab计划任务的配置字段