进程和计划任务管理

程序和进程的关系

(1) 程序

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

 

(2) 进程

  1. CPU及内存中运行的程序代码
  2. 动态执行的代码
  3. 父、子进程

每个程序可以创建一个或多个进程

查看进程信息

(1) 查看进程命令 ps 命令

查看静态的进程统计信息

 

  1. 示例ps  -aux

 

  1. 示例ps  -elf

 

  1. 选项解释

选项

解释

-e

显示系统内的所有进程信息

-l

使用长格式显示进程信息

-f

使用完整的格式显示进程信息。

-a

显示终端上的所有进程,包括其他用户的进程

-u

表示列出进程的用户

-x

显示所有终端的进程

 

  1. 详细信息解释

名称

解释

USER

进程的用户

PID

进程的ID

%CPU

进程占用的CPU百分比

%MEM

占用内存的百分

VSZ

该进程使用的虚拟内存量(KB)

RSS

该进程占用的物理内存量(KB)

TTY

启动进程的终端名。不是从终端启动的进程则显示为 ?

STAT

该行程的状态

D

不可中断的休眠状态

R

正在运行状态

S

处于休眠状态,可被唤醒

T

停止状态,可能是在后台暂停或进程处于跟踪 调试状态

Z

僵尸进程,进程已经中止,但是部分程序还在内存当中

 

START

该进程被触发启动时间

TIME

该进程实际使用CPU运行的时间

COMMAND

进程的启动命令

 

 

(2) 查看进程top命令(动态)

  1. 示例

 

第一行

任务队列信息

11:19:34

系统时间

up 1:11

系统已运行时长

2 Users

当前登录用户数

load average: 0.00,  0.01, 0.02

系统负载,即单位时间内系统处理的任务数,后面三个数值分别为1分钟、5分钟、15分钟前到现在的平均值

 

第二行

进程信息

Tasks

总进程数

running

正在运行的进程数

sleeping

休眠的进程数

stopped

中止的进程数

zombie

僵死的进程数

 

第三行

CPU的信息

us

用户占用

sy

内核占用

ni

优先级调度占用

id

空闲CPU,要了解空闲的 CPU 百分比,主要看%id 部分

wa

I/O 等待占用

hi 

硬件中断占用

si

软件中断占用

st

虚拟化占用

 

内存的信息

total

总内存空间

free

空闲内存

used

已用内存

buff/cache

物理内存和交换内存的缓冲区总和

 

交换空间的信息

total

总内存空间

free

空闲交换空间

used

已用交换空间

avail Mem

可用物理空间

 

  1. 各行标志内容

 

 

 

 

 

 

名称

解释

PID

进程id

USER

进程所有者的用户名

PR

优先级

NI

谦让度值。负值表示高优先级,正值表示低优先级

VIRT

进程使用的虚拟内存总量,单位kb

RES

进程使用的物理内存大小,单位kb

SHR

共享内存大小,单位kb

S

进程状态

%CPU

上次更新到现在的CPU时间占用百分比

%MEM

进程使用的CPU时间总计,单位1/100秒

TIME+

COMMAND

  1. top常用命令

名称

解释

P 键

根据CPU使用百分比大小进行排序

M 键

根据驻留内存大小进行排序

N 键

根据启动时间进行排序

c 键

切换显示命令名称和完整命令行

h 键

可以获得 top程序的在线帮助信息

k 键

根据提示输入指定进程的 PID 号并按 Enter 键终止对应的进程

q 键

退出 top 程序

数字1 键

显示CPU个数和状态

%CPU

上次更新到现在的CPU时间占用百分比

%MEM

进程使用的CPU时间总计,单位1/100秒

TIME+

COMMAND

查看进程信息

(1) 查看进程信息pgrep命令

  1. 常用选项

选项

意义

l

进程关键字

U

指定特定用户

t

指定终端 (使用较少)

 

  1. 示例

创建一个新用户admin,并创建密码,切换用户admin,创建vim进程

复制会话查询现虚拟机中的进程

 

 

 

 

查看进程

(2) 查看进程树pstree命令

1. 常用选项

 

 

 

 

 

选项

意义

-a

显示完整信息

-u

列出对应用户名

-p

列出对应PID号

 

  1. 示例

先在1centos7-1中使用admin用户创建一个文件,并进入编辑

 

 

再进入复制会话中去以树形结构完整列出用户admin的进程号,进程名称

 

 

进程的启动方式

(1)手工启动

1. 手工启动

前台启动:用户输入命令,直接执行程序

后台启动:在命令行尾加入“&”符号

2. 示例

使用本地磁盘cdrom内部的文件,使用磁盘,先挂载,然后统计一下/mnt目录内部空间占用情况很大,然后复制/mnt目录包括目录下所有文件到/opt目录中,可以看到因为非常大,需要等待

 

(2)调度启动

使用at命令,设置一次性计划任务

使用crontab命令,设置周期性计划任务

 

 

  1. 进程的前后台调度

①Ctrl+z组合键
将当前程序挂起,即调入后台并停止执行

 

 

②jobs命令
jobs 【-l】
查看处于后台的任务列表

 

 

③fg命令
将后台进程恢复到前台运行,可指定任务序号

 

 

终止进程的运行

(一) ctrl ckillkillall ctrl+c组合键

中断正在执行的命令

 

(二) killkillall命令

① kill用于终止指定PID号的进程

② killall用于终止指定名称相关的所有进程

③-9选项用于强制终止

 

(三) pkill

根据特定条件终止相应的进程

 

(四) 常用命令选项

①-U:根据进程所属的用户名终止相应进程

② -t:根据进程所在的终端终止相应程序

 

 

计划任务管理at

●at命令

一次性计划任务

 

  1. 示例

at HH:MM】【yyyy-mm-dd

 

 

 

 

 

 

  1. 命令格式

 

[root@localhost~]#at 21:30      #不跟年月日,表示使用当前日期

at> shutdown -h now

ctrl d                          #提交一次性计划任务

at> <EOT>

job 2 at Sun May 7 21:30:00 2017

 

[root@localhost~]# atq          #查看未执行的任务列表

[root@localhost~]# atrm 1       #删除第一条任务

 

计划任务管理crontab(重点)

(一)crontab命令

 

  1. 按照预先设置的时间周期(分、时、日、月、周)重复执行用户指定的命令操作

 

  1. 属于周期性计划任务

 

  1. 主要设置文件

全局配置文件,位于文件:/etc/crontab

系统默认的设置,位于目录:/etc/cron.*/

用户定义的设置,位于文件:/var/spool/cron/用户名

 

(二)管理crontab计划任务

 

  1. 查看计划任务

 

crontab -e -u 用户名】      -u缺省时默认当前用户

 

  1. 查看计划任务

 

crontab -l -u 用户名】

 

  1. 删除计划任务

 

crontab -r -u 用户名】

 

(三) crontab任务配置的格式

 

代表意义

分钟

小时

日期

月份

命令

数字范围

0~59

0~23

1~31

1~12

0~7

需要执行的命令

 

 

周的数字为 0 7 时,都代表星期天的意思。

 

(四)时间数值的特殊表示方法

*表示该范围内的任意时间

,表示间隔的多个不连续时间点

-表示一个连续的时间范围

/表示间隔的时间频率

 

应用示例

 

0 17 * * 1-5         周一到周五每天17

30 8 * * 1,3,5       周一,周三,周五8.30

0 8-18/2 * * *       8点到18点每两小时

0 * */3 * *          每三天

 

crontab -e [-u root] 编辑一个计划任务

 

1.每分钟定时执行一次规则:

 

1分钟执行: */1 * * * *或者* * * * *

5分钟执行: */5 * * * *

 

 

2.每小时定时执行一次规则:

 

每小时执行: 0 * * * *或者0 */1 * * *

每天上午7点执行:0 7 * * *

每天上午710分执行:10 7 * * *

 

 

 

3.每天定时执行一次规则:

 

每天执行 0 0 * * *

 

 

 

4.每周定时执行一次规则:

 

每周执行 0 0 * * 0

 

 

5.每月定时执行一次规则:

 

每月执行 0 0 1 * *

 

 

6.每年定时执行一次规则:

 

每年执行 0 0 1 1 *

 

 

其他例子

 

5 * * * * ls         指定每小时的第5分钟执行一次ls命令

30 5 * * * ls        指定每天的 5:30 执行ls命令

30 7 8 * * ls        指定每月8号的730分执行ls命令

30 5 8 6 * ls        指定每年的68530执行ls命令

30 6 * * 0 ls        指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]

30 3 10,20 * * ls    每月10号及20号的330执行ls命令[注:用来连接多个不连续的时段]

25 8-11 * * * ls     每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]

*/15 * * * * ls      15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]

30 6 */10 * * ls     每个月中,每隔106:30执行一次ls命令[即每月的1112131日是的630执行一次ls命令。 ]

 

 

方法二:

echo ‘30 7 * * 6 /usr/bin/systemctl httpd restart’ >> /var/spool/cron/root

 

posted @ 2021-07-05 02:22  青山不改水长流  阅读(113)  评论(0)    收藏  举报