进程和计划任务管理

进程

进程和程序有关,把该文件放到内存里,进程是动态的,不同时刻的状态不一样

内存:放置正在运行的程序和所需数据的位置

程序启动  —— 》将相关文件和数据放到内存里  —— 》进程  (processes)

进程相关命令

命令

说明

ps查询系统当前的静态进程信息
ps :  processes statistic
ps a
(BSD风格)
显示所有进程信息
ps au
(BSD风格)
以用户为主显示进程信息
 
ps auX
(BSD风格)
显示当前用户在所有终端下所有进程信息
 
ps -elf列出系统上所有进程的详细信息
 
top动态查看系统的实时状态
 
pgrep -l 进程名显示指定进程的相关进程的对应id和进程名称
pstree -aup显示进程树和响应pid
jobs -l

查看当前被挂起的进程的任务号和进程号

示例 :  [1]+   1832 停止
任务号 进程号

fg 任务号将挂起的进程放到前台运行
bg 任务号将被挂起的进程放到后台运行
kil [选项] 进程号杀死指定进程
针对进程号的命令
常用信令选项:
-1 :  重新初始化进程,并且进程pid不会改变
-2 :  结束进程,但不强制;Ctr+C 是对前台进程执行的ki -2指令
-9 :  发送信令,强制进程
-15 :  正常结束进程,也是kil命令不加选项的默认信令
-19 :  暂停进程
pkill [选项] 进程名

可以针对进程名、指定用户启动的进程、终端的命令

杀死指定进程

pkill -9 -U 用户名强制杀死指定用户进程
killall [选项] 进程名

针对进程名

杀死指定进程

netstat -anpt | grep httpd查看指定名为httpd的进程的相关信息
-a :  显示所有进程
-n :  以数字显示地址相关信息
-p :  列出协议
-t :  列出tcp相关信息

快捷键

说明

Ctrl + C取消当前前台程序
Ctrl + Z将前台程序挂起到后台暂停起来,该进程处于停止状态

ps命令选项参数

说明

-e(every)  显示所有进程
-u(user)  显示面向用户的进程的详细信息,如进程所有者、CPU 使用率、内存使用率等
-f(full-format)  以全格式的列表显示进程的信息,包括进程之间的层级关系
-p(pid)  查找具有指定进程ID 的进程
-C(Command)  查找具有指走命令名称的进程
-aux在当前用户下以详细格式显示所有正在运行的进程其中x是表示在没有控制终端的情况下列出进程,这些显示的主要是启动并运行在后台的进程

终端详细信息解析

 

ps  -elf信息列

说明

F  (flags)该进程的特定标志
S  (stat)进程状态
PPID (Parent Process lD)该进程的父进程ID,创建当前进程的进程ID,如果没有父进程就显示0
UID进程所有者的用户名 ;  和USER一样
CCPU的利用率,和%CPU一样
PRI  (Priority:优先级)

进程调度的优先级,越小越优先

也叫实时进程 或 动态优先级(0~99)

取值范围: 0~139 (共140个)

NI  (nice)

进程谦让度(对CPU资源的抢夺能力),NI值越高,优先级越低

也叫非实时进程静态优先级,取值范围 :  -20~19  (共40个)

ADDR内存地址,该进程在运行时所用的数据在内存中的地址
SZ进程使用的交换空间  (虚拟内存)  的大小  (以KB为单位)
WCHAN  (Waiting Channel)如果该进程处于睡眠状态,这一列将显示进程正在等待的资源或条件
STIME该进程启动时间

ps -aux信息列

说明

USER进程所有者的用户名
PID  (Procedure lD)该进程唯一进程ID,每一个进程在启动时,系统内核会分配一个运行时的唯一标识ID
%CPU该进程使用的 CPU 资源的百分比
%MEM该进程使用的内存资源的百分比
VSZ  (Virtual Memory Size)该进程占用虚拟内存的大小 ;  交换分区的占用量;以KB 为单位
RSS  (Resident Set Size)该进程占用的物理内存大小 ;  以 KB 为单位

TTY

该进程在哪个终端上运行


若该进程不在终端上运行则显示“?”

如果显示的是tty1-tty6表示本机登录,显示pts/0等,表示为网络连接进主机。

TTY是电传打字机的缩写;teletypewriter;TeleTYpe,是早期古老的一种终端设备

STAT进程当前运行状态
START该进程启动的时间点
TIME进程运行过程中占用 CPU 的总时间
CMD启动进程的命令的名称

前台和后台的概念

前台 :  进程独占终端,无法再执行其他指令

后台 :  进程位于后端运行,不独占终端

nice命令

也叫非实时进程 或 静态优先级,如果要把nice值映射到PRI,是100~139,而实时进程是0~99

命令

说明

nice
 

查看当前进程的nice值,不手动设置就默认为0

静态优先级,是我们定义的

nice值越高,优先级越低

nice -10 bash将bash shell的静态优先级提高10个单位的优先级
nice --10 bash将bash shell的静态优先级降低10个单位的优先级

终端类型

  • tty终端
  • 虚拟终端
    • pts终端
    • 伪终端

Linux的桌面只是系统中的一个应用程序  (内核之外)  ,默认安装在TTY1终端之上

进程的状态

第一个字母表示进程的状态,后续的文本表示进程其他的属性

进程状态

说明

D不可唤醒的休眠进程
R正在运行的进程
S休眠进程
T暂时停止的进程
Z

僵尸进程

父进程没有回收释放已经停止的进程,就会形成僵厂进程,一直占用资源

s父进程
+

前台的进程

直接在终端下运行的程序,占据了终端,占据时不能正常使用其他命令

<高优先级
N低优先级

代码风格

Linux环境下命令的选项大致可分为3个风格

  1. Unix风格 :  “Is -a”、“s -Alh”
  2. BSD风格 :  “tarxzf、“ps aux”
  3. GNU风格(Gnuis Not Unix) :  如  “gzip --help

top界面解析

使用top命令显示实时进程动态

 

top界面信息

说明

top系统当前时间
up该主机运行时间 2:14表示运行了2小时14分钟
user当前系统登录的用户数量
load average

系统负载平均值 :  最近一分钟的负载,最近5分钟的负载,最近15分钟的负载

数字越小代表负载越低,最近15分钟的最具备参考价值

top进程信息列

说明

PR和PRI一样,代表优先级
VIRT虚拟内存使用量
RES物理内存使用量
SHR共享内存大小

缓冲区 (buffer)

内存  ——》 硬盘

缓冲区是一块内存区域,用于临时存储数据,以便在不同速度的设备(比如内存和硬盘)之间传输数据时起到协调作用。

当程序需要向硬盘写入数据时,数据首先被写入缓冲区。当缓冲中区满或满足某些条件(比如占满三分之一)时,缓冲区中的数据会一次性写入硬盘。这样做的好处是可以减少直接写入硬盘的次数,提高写操作的效率。

缓存区 (cache)

硬盘 —— 》内存 —— 》CPU

  1. 当程序需要数据时,数据首先从硬盘读取到内存中。
  2. 而内存作为CPU和硬盘之间的桥梁,具有比硬盘快得多的读取速度。数据在内存中,CPU就可以直接从内存中读取到CPU缓存中,而不需要等待硬盘的慢速响应。
  3. 因为内存的速度仍然跟不上CPU的速度,因此这些教据会先被加载到CPU缓存中 ( 三级缓存,二级缓存 ) —— 》寄存器 —— 》运算器。

计划任务

  • 一次性任务
    • 在未来的某一个时间运行一个任务
  • 周期性任务
    • 在未来的某一个固走的时间周期性地运行任务 

一次性任务

命令

说明

yum -y install at安装相关软件包
systemctl start atd运行该软件对应服务
at 时间  (23:30)创建一个于23:30运行的一次性任务
atg查看创建的计划任务
atrm 任务编号删除指定任务号的计划任务
快捷键说明
Ctrl + D退出任务计划编辑界面

周期性任务

  • 分钟  (0 - 59)
  • 小时  (0 - 23)
  • 日期  (1 - 31)
  • 月份  (1 - 12或缩写如 jan,feb等)
  • 星期  (0 - 7,其中 0 和 7 都代表星期日,或缩写如 sun,mon等)

实验文字步骤

  1. 在 /etc/cron.hourly/ 目录下放置或创建要执行的脚本
  2. chmod +x文件名.sh 给脚本文件添加执行的权限
  3. 通过 vim /etc/crontab 命令添加周期性任务
  4. systemctl restart crond 重启相关服务
  5. 最后可以通过run-parts命令测试周期性任务

实验图片步骤

在 /etc/cron.hourly/下编写脚本文件

编辑/etc/crontab文件 

五个*号对应5种日期单位

每分钟 每小时 每天 每月的这一天 每周的周几

语法 :  *****要执行该命令的用户 要执行的命令 执行脚本的路径 

使用run-parts命令执行脚本,然后查看test文件是否被echo命令追加了字符串 

因为设置的是每隔一分钟执行一次,所以过了几分钟就有了很多追加内容 

 

命令

说明

crontab -e在root用户下添加计划任务脚本内使用的命令最好用绝对路径
crontab -l -u [用户名]查询执行用户的计划任务
crontab -e -u 用户名给指定用户添加计划任务以用户为单位,分别指定计划任务

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值