进程和计划任务管理

目录

进程相关命令

前台和后台的概念

nice命令

终端类型

进程的状态

代码风格

缓冲区(buffer)

缓存区(cache)

计划任务

一次性任务

周期性任务

实验文字步骤




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

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

程序启动 ——》将相关文件和数据放到内存里 ——》进程(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 任务号

将被挂起的进程放到后台运行

kill [选项] 进程号

杀死指定进程

针对进程号的命令

常用信令选项:

-1:重新初始化进程,并且进程pid不会改变

-2:结束进程,但不强制;Ctrl + C 是对前台进程执行的kill -2指令

-9:发送信令,强制进程

-15:正常结束进程,也是kill命令不加选项的默认信令

-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 ID)

该进程的父进程ID,创建当前进程的进程ID,如果没有父进程就显示0

UID

进程所有者的用户名;和USER一样

C

CPU的利用率,和%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 ID)

该进程唯一进程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个单位的优先级

终端类型

  1. tty终端
  2. 虚拟终端
    1. pts终端
    2. 伪终端

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

进程的状态

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

进程状态

说明

D

不可唤醒的休眠进程

R

正在运行的进程

S

休眠进程

T

暂时停止的进程

Z

僵尸进程

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

s

父进程

+

前台的进程

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

高优先级

N

低优先级

代码风格

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

  1. Unix风格:“ls -a”、“ls -Alh”
  2. BSD风格:“tar xzf”、“ps aux”
  3. GNU风格(Gnu is Not Unix):如“gzip --help”

top界面解析

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

top界面信息

说明

top

系统当前时间

up

该主机运行时间 2:14表示运行了2小时14分钟

user

当前系统登录的用户数量

load average

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

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

Tasks

任务数量:当前进程数量 total,正在运行的 running,正在休眠的 sleeping,正在停止的 stopped 僵尸进程 zombie

%Cpu(s)

CPU占用率:用户占用的% us,系统内核% sy,改变静态优先级的进程% ni 空闲进程% id (idle),等待 I/O 完成的 CPU 百分比 wa,硬中断占用% hi,软中断占用% si,虚拟CPU% st

KiB Mem

总物理内存空间 total,空闲内存空间 free,已使用空间 used,缓冲、缓存区总大小 buff/cache

KiB Swap

交换分区总大小 total,空闲空间 free,已使用空间 used,可用物理内存空间 avail Mem

top进程信息列

说明

PR

和PRI一样,代表优先级

VIRT

虚拟内存使用量

RES

物理内存使用量

SHR

共享内存大小

缓冲区(buffer)

内存 ——》硬盘

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

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

缓存区(cache)

硬盘 ——》内存 ——》CPU

当程序需要数据时,数据首先从硬盘读取到内存中。

而内存作为CPU和硬盘之间的桥梁,具有比硬盘快得多的读取速度。数据在内存中,CPU就可以直接从内存中读取到CPU缓存中,而不需要等待硬盘的慢速响应。

因为内存的速度仍然跟不上CPU的速度,因此这些数据会先被加载到CPU缓存中(三级缓存,二级缓存) ——》寄存器 ——》运算器。

计划任务

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

一次性任务

命令

说明

yum -y install at

安装相关软件包

systemctl start atd

运行该软件对应服务

at 时间(23:30)

创建一个于23:30运行的一次性任务

atq

查看创建的计划任务

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 用户名

给指定用户添加计划任务

以用户为单位,分别指定计划任务

  • 35
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值