进程和计划任务管理

目录

一、程序和进程

1.程序

2.进程

2.1进程具有的特点

二、查看进程的相关命令

1.ps命令

1.1概念 

1.2查看静态的进程统计信息

2.top命令

2.1top命令第二部分输出

3.pgrep命令

4.pstree命令

三、进程管理

 1.手动启动

1.1“命令&”,把命令放入后台执行

2.jobs命令(查看后台任务列表)

3.kill命令(结束进程) 

4.killall命令

5.pkill命令

四、计划任务管理

1.at命令

2. crontab命令


一、程序和进程

1.程序

程序:执行特定任务的一串代码

(1)是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息             化工具

(2)用于描述进程要完成的功能,是控制进程执行的指令集

2.进程

进程:运行中的程序的一个副本,是被载入内存的一个指令集合,是资源分配的单位
(1)进程ID(ProcessID,PID)号码被用来标记各个进程
(2)UID、GID语境决定对文件系统的存取和访问权限,通常从执行进程的用户来继承
(3)存在生命周期
(4)都由其父进程创建

2.1进程具有的特点

动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的
并发性:任何进程都可以同其他进程一起并发执行
独立性:进程是系统进行资源分配和调度的一个独立单位(硬件资源分配的最小单位)
结构性:进程由程序(代码)、数据(需要调用的文件)和进程控制块(开发)三部分组成

二、查看进程的相关命令

进程的管理主要是指进程的关闭与重启。我们一般关闭或重启软件,都是关闭或重启它的程序,而不是直接操作进程的
系统中可以识别的信号较多,我们可以使用命令 "kill -l" "man 7 signal" 来查询

信号代号

信号名称

说明

1

SIGHUP

该信号让进程立即关闭,然后重新读取配置文件之后重启

2

SIGINT

程序中止信号,用于中止前台进程。相当于输出 Ctrl+C快捷键

3

SIQUIT

退出

8

SIGFPE

在发生致命的算术运算错误时发出。不仅包括浮点运算错误,还包括溢出及除数为0等其他所有的算术运算错误

9

SIGKILL

用来立即结束程序的运行。本信号不能被阻塞、处理和忽略。一般用于强制中止进程

14

SIGALRM

时钟定时信号,计算的是实际的时间或时钟时间。alarm函数使用该信号

15

SIGTERM

正常结束进程的信号,kill命令的默认信号。如果进程已经发生了问题,那么这个信号是无法正常中止进程的,这时我们才会尝试SIGKILL信号,也就是信号9

18

SIGCONT

该信号可以让暂停的进程恢复执行。本信号不能被阻断

19

SIGSTOP

该信号可以暂停前台进程,相当于输入 Ctrl+Z快捷键。本信号不能被阻断

1.ps命令

1.1概念 

ps process state ,可以查看进程当前状态的快照,默认显示当前终端中的进程, Linux 系统各进程的相关信息均保存在/proc/ 数字 /status 下的文件中

1.2查看静态的进程统计信息

"ps aux": 可以查看系统中所有的进程
"ps -le":   可以查看系统中所有的进程,而且还能看到进程的父进程的 PID 和进程优先级
"ps -l":     只能看到当前 Shell 产生的进程

常用选项:ps -aux

-a
显示当前终端下的所有进程信息,包括其他用户的进程。与 “x” 选项结合时将示系统中所有的进程信息
-u
使用以用户为主的格式输出进程信息
-x
显示当前用户在所有终端下的进程信息
-e
显示系统内的所有进程信息
-l
使用长( Long) 格式显示进程信息
-f
使用完整的( Full) 格式显示进程信

选项

含义

USER

启动该进程的用户账号的名称

PID

该进程在系统中的数字ID号,在当前系统中是唯一的

%CPU

该进程占用CPU资源的百分比,占用的百分比越高,进程越耗费资源

%MEM

该进程占用物理内存的百分比,占用的百分比越高,进程越耗费资源

VSZ

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

RSS

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

TTY

该进程是在哪个终端运行的。其中,tty1~tty7代表本地控制台终端(可以通过Alt+F1~F7快捷键切换不同的终端),tty1~tty6是本地的字符界面终端,tty7图形终端。pts/0~255 代表虚拟终端,一般是远程连接的终端,第一个远程连接占用pts/0,第二个远程连接占用pts/1,依次增长。?代表和终端无关,系统进程

STAT

进程状态。常见的状态有以下几种: 

-D:不可被唤醒的睡眠状态,通常用于I/O情况

-R:该进程正在运行

-S:该进程处于睡眠状态,可被唤醒

-T:停止状态,可能是在后台暂停或进程处于除错状态

-W:内存交互状态(从2.6内核开始无效)

-X:死掉的进程(应该不会出现)

-Z:僵尸进程。进程已经中止,但是还是占用硬件资源。但是不多

-<:高优先级(以下状态在BSD格式中出现)

-N:低优先级

-L:被锁入内存

-s:包含子进程

-l:多线程(小写 L)

-+:位于后台

START

该进程的启动时间

TIME

该进程占用CPU的运算时间,注意不是系统时间

COMMAND

产生此进程的命令名

 ps -elf 命令

选项含义
F进程标志,说明进程的权限,常见的标志有两个:1:进程可以被复制,但是不能被执行;4:进程使用超级用户权限
S进程状态。具体的状态和"psaux"命令中的 STAT 状态一致
UID运行此进程的用户的ID
PID进程的ID
PPID父进程的ID
C该进程的CPU使用率,单位是百分比
PRI进程的优先级,数值越小,该进程的优先级越高,越早被CPU执行;系统定义不可以人为修改
NI进程的优先级,数值越小,该进程越早被执行;可以人为修改-20-19
ADDR该进程在内存的哪个位置
SZ该进程占用多大内存
WCHAN该进程是否运行。“-”代表正在运行
TTY该进程由哪个终端产生
TIME该进程占用 CPU 的运算时间,注意不是系统时间
CMD产生此进程的命令名

2.top命令

ps命令可以一次性给出当前系统中进程状态,但使用此方式得到的信息缺乏时效性,并且如果管理员需要实时监控进程运行情况,就必须不停地执行ps命令,这显然是缺乏效率的。
为此,Linux提供了top命令。top命令可以动态地持续监听进程地运行状态,与此同时,该命令还提供了一个交互界面,用户可以根据需要,人性化地定制自己的输出,进而更清楚地了进程的运行状态

选项功能
-d秒数:指定top命令每隔几秒更新。默认是3秒
-b使用批处理模式输出。一般和"-n"选项合用,用于把top命令重定向到文件中
-n次数:指定top命令执行的次数。一般和“-”选项合用
-p进程PID:仅查看指定ID的进程
-s使top命令在安全模式中运行,避免在交互模式中出现错误
-u用户名:只监听某个用户的进程

在top命令的显示窗口中,还可以使用如下按键,进行一下交互操作

?或h显示交互模式的帮助
c按照CPU的使用率排序,默认就是此选项
m按照内存的使用率排序
N按照PID排序
T按照CPU的累积运算时间排序,也就是按照TIME+项排序
k按照PID给予某个进程一个信号。一般用于中止某个进程,信号9是强制中止的信号
r按照PID给某个进程重设优先级(Nice)值
q退出top命令

挑选其中几个命令演示如下:

图一为按照PID排序

图二为按照运行时间排序

2.1top命令第二部分输出

主要是系统进程信息,各个字段的含义如下:

PID进程的ID
USER该进程所属的用户
PR优先级,数值越小优先级越高
NI优先级,数值越小优先级越高
VIRT该进程使用的虚拟内存的大小,单位为 KB
RES该进程使用的物理内存的大小,单位为 KB
SHR共享内存大小,单位为 KB
S进程状态
%CPU该进程占用CPU的百分比
%MEM该进程占用内存的百分比
TIME+该进程共占用的CPU时间
COMMAND进程的命令名

3.pgrep命令

查看指定的进程

pgrep - [选项] “文件名”

-U指定用户,小u也可以
-l显示进程名
-a显示完整格式的进程名
-P pid显示指定进程的子进程

4.pstree命令

以树形结构列出进程信息

pstree [OPTION] [ PID] [USER ]

常用选项:

-a显示启动每个进程对应的完整指令,包括启动进程的路径、参数等
-p显示PID
-T不显示线程thread,默认显示线程
-u显示用户切换
-H pid高亮显示指定进程及其前辈进程

三、进程管理

 1.手动启动

前台启动:通过终端启动,且启动后一直占据终端
后台启动:可通过终端启动,但启动后即转入后台运行(释放终端)

1.1“命令&”,把命令放入后台执行

让作业运行于后台
(1)运行中的作业:Ctrl+z 放到后台但是会停止作业
(2)尚未启动的作业:COMMAND &
第一种把命令放入后台的方法是在命令后面加入 空格 &。使用这种方法放入后台的命令,在后台处于执行状态
注意,放入后台执行的命令不能与前台有交互,否则这个命令是不能在后台执行的

2.jobs命令(查看后台任务列表)

常用的参数

-l:选项可以同时显示该进程对应的PID号

bg(BackGround,后台)命令:可以将后台中暂停执行(如按 Ctrl+Z 组合键挂起)的任务恢复运行,继续在后台执行操作
fg (ForeGround,前台)命令:可以将后台任务重新恢复到前台运行。除非后台中的任务只有一个,否则bg和fg命令都需要指定后台进程的任务编号作为参数

3.kill命令(结束进程) 

通过kill命令终止进程时,需要使用进程的PID号作为参数。无特定选项时,kill命令将给该进程发送终止信号并正常退出运行,若该进程已经无法响应终止信号,则可以结合“-9” 选项强行终止进程。强制终止进程时可能会导致程序运行的部分数据丢失,因此不到不得已时不要轻易使用“-9”选项

也就是说,kill命令的执行原理是这样的,kill命令会向操作系统内核发送一个信号(多是终止信号)和目标进程的PID,然后系统内核根据收到的信号类型,对指定进程进行相应的操作

kill [信号] PID
kill命令是按照PID来确定进程的,所以kill命令只能识别PID,而不能识别进程名。Linux 定义了几十种不同类型的信号,可以使用kill-l 命令査看所有信号及其编号,这里仅列出几个常用的信号

信号编号信号名含义
0EXIT程序退出时收到该信息
1HUP终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化
2INT表示结束进程,但并不是强制性的,常用的"Ctrl+C" 组合键发出就是一个kill
-2 的信号
3QUIT退出
9KILL杀死进程,即强制结束进程
11SEGV段错误
15TERM正常结束进程,是kill命令的默认信号

4.killall命令

killall也是用于关闭进程的一个命令,但和kill不同的是,killall命令不再依靠PID来杀死单个进程,而是通过程序的进程名来杀死一类进程,也正是由于这一点,该命令常与 ps、pstree 等命令配合使用

killall [选项] [信号] 进程名

-i:交互式,询问是否要杀死某个进程

-l:忽略进程名的大小写

5.pkill命令

当作于管理进程时,pkill命令和killall命令的用法相同,都是通过进程名杀死一类进程,该命令的基本格式如下:
pkill [信号] 进程名 

信号编号信号名含义
0EXIT程序退出时收到该信息,检查检查是否有故障
1HUP终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化
2INT表示结束进程,但并不是强制性的,常用的"Ctrl+C" 组合键发出就是一个kill
-2 的信号
3QUIT退出
9KILL杀死进程,即强制结束进程
11SEGV段错误
15TERM正常结束进程,是kill命令的默认信号

 pkill [-t  终端号] 进程名
-U:根据进程所属的用户名终止相应进程
-t:根据进程所在的终端终止相应进程

使用 pkill 命令可以根据进程的名称、运行该进程的用户、进程所在的终端等多种属性终止特定的进程,大部分选项与 pgrep 命令基本类似,如“-U”(指定用户)、“-t”(指定终端) 等选项,使用起来非常方便

四、计划任务管理

1.at命令

使用at命令设置的计划任务只在指定的时间点执行一次,前提是对应的系统服务atd必须已经运行。需要注意的是,计划执行任务的时间、日期必须安排在当前系统的时刻之后,否则将无法正确设置计划任务

at [时间]

at>给出什么操作

Ctrl+D 提交命令

atq

查看已经设置但还未执行的计划任务,已执行过的at任务将不会再出现在列表中

atrm [编号]

删除指定编号的at任务,删除后的at任务将不会被执行,已经执行过的任务无法删除

2. crontab命令

crontab命令
按照预先设置的时间周期(分钟、小时、天......)重复执行用户指定的命令操作
属于周期性计划任务
主要设置文件
       全局配置文件,位于文件:/etc/crontab
       系统默认的设置,位于目录:/etc/cron.*/
       用户定义的设置,位于文件:/ar/spool/cron/用户名 

crond通过多个目录和文件设置计划任务,不同类型的任务由不同的配置文件来设置

选项功能
-u用来设定某个用户的crontab服务,例如"-u demo"表示设备demo用户的crontab服务,此选项一般有root用户来运行
-e编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件
-l显示某用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容
-r从 /var/spool/cron 删除某用户的crontab文件,如果不指定用户,则默认删除当前用户的 crontab文件
-i在删除用户的crontab文件时,给确认提示

crontab -e
进入crontab编辑界面。会打开vim编辑你的任务
* * * * *执行的任务

项目含义范围
第一个“*”分钟0-59
第二个“*”小时0-23
第三个“*”日期1-31
第四个“*”月份1-12
第五个“*”星期0-7(0和7都代表星期日)

 特殊符号

特殊符号含义
*(星号)代表任何时间。比如第一个"*"就代表一小时种每分钟都执行一次的意思
,(逗号)代表不连续的时间。比如"0 8,12,16***命令"就代表在每天的8点0分、12点0
分、16点0分都执行一次命令
-(中杠)代表连续的时间范围。比如"05 **1-6命令",代表在周一到周六的凌晨5点0分执行
命令
/(正斜杠)代表每隔多久执行一次。比如"*/10命令",代表每隔 10 分钟就执行一次命令

管理crontab计划任务
编辑计划任务
crontab -e [-u 用户名]
查看计划任务
crontab -l [-u 用户名]
删除计划任务
crontab -r [-u 用户名] 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值