Linux进程和计划任务管理

时间:2021-06-24 18:25:52   收藏:0   阅读:0

一、程序和进程的关系

1.1、程序

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

文件中静态保存的代码

也就是一堆代码,可以长时间的保存在系统中

1.2、进程

进程是程序运行的过程,进程存在着生命周期,也就是进程会随着陈序的终止而销毁

在CPU及内存中运行的程序代码,动态执行的代码

父、子进程(每个程序可以创建一个或多个进程)

1.3、线程

线程是操作系统能够进行运算调度的最小单位

它包含在进程之中,是进程中的实际运作单位

一条线程指的是进程中的一个单一顺序的控制流,一个进程中可以并发多个线程,每个线程并行执行不同的任务,它们共享同一个进程的资源

二、查看进程信息

2.1、ps命令查看静态的进程统计信息

ps -aux查看静态的进程统计信息

-a:显示终端上的所有进程,包括其它用户的进程

-u:表示列出进程的用户

-x:显示所有终端的进程
技术图片

各字段解析

技术图片
僵尸进程:一个进程结束了,但是如果该进程的父进程已经先结束了,那么该进程就不会变成僵尸进程,因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程,看有没有哪个进程是刚刚结束的这个进程的子进程,如果是就由init来接管它,成为它的父进程,子进程退出后init会回收其占用的相关资源。

但是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将称为一个僵尸进程。

tty终端:CentOS7系统,tty1表示图形界面,tty2-tty6表示文字界面,可以用ctrl+Alt+F1-F6切换

pts说明是远程工具连接的,比如xshell,后面的数字代表登录的时间顺序,越小证明登录的越早

ps -elf查看静态的进程统计信息
技术图片

常用选项

技术图片

各字段解析

技术图片

ps -aT显示所有线程

技术图片

2.2、top命令查看动态的进程排名信息

技术图片

第一行是任务队列信息

技术图片

22:07:29: 代表系统时间

UP 18 min: 系统已运行时长

2 users: 当前用户登录数

load average 0.00,0.03 0.05: 系统负载,即单位时间内系统处理的任务数,后面三个数值分别是1分钟、5分钟、15分钟到现在的平均值

第二行是进程信息

技术图片

Tasks: 总进程数

running: 正在运行的进程数

sleeping: 休眠的进程数

stopped: 中止的进程数

zombie: 僵死的进程数

第三行是CPU信息

技术图片

us: 用户占用

sy: 内核占用

ni: 优先级调度占用

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

wa: I/O等待占用

hi: 硬件中断占用

si: 软件中断占用

st: 虚拟化占用

us+sy+ni就是总的CPU占用

第四行是内存信息

技术图片
total: 总内存空间

free: 空闲内存

used: 已用内存

buff/cache: 物理内存和交换内存的缓冲区总和

第五行是交换空间信息

技术图片

total: 总交换空间

free: 空闲交换空间

used: 已用交换空间

avail Mem: 可用物理空间

进程信息区各列解释

技术图片

技术图片

top常用命令

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

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

N键: 根据启动时间进行排序

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

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

k键: 根据提示输入指定进程的PID号并按enter键终止对应的进程,重新在启动top该进程就没了

q键: 退出top程序

数字1键: 显示cpu个数和状态

top -H: 显示所有线程

top -H -p: 显示特定进程中的线程

2.3、pgrep命令

根据特定条件查询进程PID信息
技术图片
技术图片

-U:指定特定用户

-t:指定终端

2.4、查看进程树

以树形结构列出进程信息
技术图片
技术图片

三、进程的启动方式

3.1、手工启动

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

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

技术图片

3.2、调度启动

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

格式:第一行at [HH:MM] [yyyy-mm-dd] ##不填年月日默认为当天

第二行输入要执行的命令

第三行按Ctrl+D键提交任务

创建一个一次性计划任务,在规定时间罗列root用户的所有进程并统计放到opt目录中的ps.root中
技术图片

技术图片

atq查看未执行的任务列表
技术图片

atrm 任务序列号删除对应任务
技术图片

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

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

主要配置文件

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

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

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

管理crontab计划任务

crontab -e [-u 用户名] #编辑计划任务(-u缺省时默认是针对当前用户

crontab -l [-u 用户名] #查看计划任务

crontab -r [-u 用户名] #删除计划任务

crontab任务配置的格式

技术图片
任务周期设置数值的表示方法

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

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

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

/指定间隔的时间频率

应用示例
技术图片

crontab第一种配置方法

crontab -e进行配置,进入后会发现和vi编辑器是一样的操作,配置完成退出并保存
技术图片
这时候我们可以crontab -l进行查看任务
技术图片

crontab第二种配置方法

将周期任务追加到用户自定义的设置文件中
技术图片

crontab第三种配置方法

进入全局配置文件定义任务

vim /etc/crontab
技术图片
注:此种方法crontab -l查看不到对应列表,想要删除只能再次进入全局配置文件进行手动删除

3.3、进程的前后台调度

Ctrl+Z组合键:将当前进程挂起,即调入后台并停止执行

技术图片

jobs命令

jobs [-l]查看处于后台的任务列表
技术图片

fg命令

将后台进程恢复到前台运行,可指定任务序号
技术图片

3.4、终止进程的运行

Ctrl+C组合键

中断正在执行的命令

3.5、kill、killall命令

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

例如:先查找对应的PID号,再kill指定PID,终止该任务
技术图片
技术图片

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

-9选项用于强制终止

3.6、pkill命令

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

常用命令选项

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

-t:根据进程所在的终端终止相应进程
技术图片

四、补充

atop

atop是一款用于监控Linux系统资源与进程的工具,它以一定的频率记录系统的运行状态,所采集的数据包含系统资源(CPU、内存、磁盘和网络)使用情况和进程运行情况,并能以日志文件的方式保存在磁盘中,服务器出现问题后,我们可获取相应的atop日志文件进行分析,其比较强大的地方是其支持我们分析数据时进行排序、视图切换、正则匹配等处理。

和top一样,但是更为直观性,个人建议可以安装atop来使用

安装方法

安装第三方yum源EPEL

官方的rpm repository提供的rpm包不够丰富,很多时候有找不到对应软件rpm包的情况,源码安装软件是一件很麻烦的事情,我们可以使用第三方的yum源。

EPEL的全称叫 Extra Packages for Enterprise Linux 。EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。

项目官方wiki地址:http://fedoraproject.org/wiki/EPEL/zh-cn

CentOS下,EPEL能够很方便的通过yum来安装并启用

yum -y install epel-release

yum -y install atop

技术图片

本章总结

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!