栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

进程和计划任务管理

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

进程和计划任务管理

1.什么是进程

进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。

进程的特点

进程ID(Process ID,PID)号码被用来标记各个进程

UID、GID、和SELinux语境决定对文件系统的存取和访问权限

通常从执行进程的用户来继承

存在生命周期

都由其父进程创建

进程的特征

动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的;

并发性:任何进程都可以同其他进程一起并发执行;

独立性:进程是系统进行资源分配和调度的一个独立单位;

结构性:进程由程序、数据和进程控制块三部分组成。

进程中的特例——僵尸进程

僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。如果父进程先退出 ,子进程被init接管,子进程退出后init会回收其占用的相关资源。

僵尸进程的存在会占用内存和进程号,如果有过多的僵尸进程可能会导致无法开启新的进程

2.如何管理进程

进程的管理主要是指进程的关闭与重启。我们一般关闭或重启软件,都是关闭或重启它的程序,而不是直接操作进程的。比如,要重启 apache 服务,一般使用命令"service httpd restart"重启 apache的程序。初次之外我们还可以根据进程的信号(signal)来直接管理进程。

信号代码信号名称说明
1SIGHUP该信号让进程立即关闭.然后重新读取配置文件之后重启
2SIGINT程序中止信号,用于中止前台进程。相当于输出 Ctrl+C 快捷键
3SIGQUIT退出
8SIGFPE在发生致命的算术运算错误时发出。不仅包括浮点运算错误,还包括溢出及除数为 0 等其他所有的算术运算错误
9SIGKILL用来立即结束程序的运行。本信号不能被阻塞、处理和忽略。般用于强制中止进程
14SIGALRM时钟定时信号,计算的是实际的时间或时钟时间。alarm 函数使用该信号
15SIGTERM正常结束进程的信号,kill 命令的默认信号。如果进程已经发生了问题,那么这 个信号是无法正常中止进程的,这时我们才会尝试 SIGKILL 信号,也就是信号 9
18SIGCONT该信号可以让暂停的进程恢复执行。本信号不能被阻断
19SIGSTOP该信号可以暂停前台进程,相当于输入 Ctrl+Z 快捷键。本信号不能被阻断
2.1 查看进程的命令 2.1.1 ps命令

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

常用选项

a:显示当前终端下的所有进程信息,包括其他用户的进程。与“x”选项结合时将示系统中所有的进程信息。

u:使用以用户为主的格式输出进程信息。

x:显示当前用户在所有终端下的进程信息。

输入ps -aux  可以看到出现了很多进程,以及描述信息的字段

 具体的字段含义如下表格:

字段含义
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产生此进程的命令名。

在 Linux 系统中,表示进程优先级的有两个参数:Priority 和 Nice

其中,PRI 代表 Priority,NI 代表 Nice。这两个值都表示优先级,数值越小代表该进程越优先被 CPU 处理。不过,PRI值是由内核动态调整的,用户不能直接修改。所以我们只能通过修改 NI 值来影响 PRI 值,间接地调整进程优先级。

PRI 和 NI 的关系如下:

 PRI (最终值) = PRI (原始值) + NI

其实,大家只需要记得,我们修改 NI 的值就可以改变进程的优先级即可。NI 值越小,进程的 PRI 就会降低,该进程就越优先被 CPU 处理;反之,NI 值越大,进程的 PRI 值就会増加,该进程就越靠后被 CPU 处理。

修改 NI 值时有几个注意事项:

NI 范围是 -20~19。

普通用户调整 NI 值的范围是 0~19,而且只能调整自己的进程。

普通用户只能调高 NI 值,而不能降低。如原本 NI 值为 0,则只能调整为大于 0。

只有 root 用户才能设定进程 NI 值为负值,而且可以调整任何用户的进程。

2.1.2 top命令

ps 命令可以一次性给出当前系统中进程状态,但使用此方式得到的信息缺乏时效性,并且,如果管理员需要实时监控进程运行情况,就必须不停地执行 ps 命令,这显然是缺乏效率的。

为此,Linux 提供了 top 命令。top 命令可以动态地持续监听进程地运行状态,与此同时,该命令还提供了一个交互界面,用户可以根据需要,人性化地定制自己的输出,进而更清楚地了进程的运行状态。

输入top命令后会进入如下界面:

top 命令的输出内容是动态的,默认每隔 3 秒刷新一次。命令的输出主要分为两部分:

    第一部分是前五行,显示的是整个系统的资源使用状况,我们就是通过这些输出来判断服务器的资源使用状态的;

    第二部分从第六行开始,显示的是系统中进程的信息

常用命令选项

-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 命令;

2.1.3 pgrep命令

查看指定的进程

常用选项

-U 指定用户

-l: 显示进程名

-a: 显示完整格式的进程名

-P pid: 显示指定进程的子进程

2.1.4 pstree命令

以树形结构列出进程信息

常用选项

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

进程的启动方式有两种,前台启动和后台启动。前台启动进程,在该程序执行是无法进行其他的操作的,但是如果我们使用后台启动,就可以在执行该操作的同时进行其他的操作。

后台启动的方法

在你执行的命令之后加上 &

实例

dd if=/dev/zero of=/opt/data bs=1G count=5 &

注意,放入后台执行的命令不能与前台有交互,否则这个命令是不能在后台执行的

进程的前后台调度

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

Ctrl+C组合键

取消当前执行的命令

kill      

kill -编号  进程号

kill 命令用于删除执行中的程序或工作主要的信号编号

3QUIT退出。
9KILL杀死进程,即强制结束进程。

killall

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

at命令

一次性计划任务

at [HH:MM] [yyyy-mm-dd]

Ctrl + D  结束at命令的输入
4.周期性任务

crontab命令

按照预先设置的时间周期(分钟、小时、天、月、周)重复执行指定的命令操作属于周期性计划任务

主要设置文件:

全局配置文件,位于文件: /etc/crontab(建议不要修改此文件)

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

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

 常用选项

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

注意使用命令时一定要用绝对路径

如何在crontab中使用字符表示时间

特殊字符说明
*(星号)代表任何时刻都接受的意思。
,(逗号)代表分隔时段的意思
-(减号)代表一段时间范围内
/n(斜杠)n代表数字,代表每隔n单位间隔的意思

实例:在18点 27分打印hello

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/751175.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号