Centos 7之进程的控制与调度

本篇博客将详细介绍Liunx系统中与进程有关的相关命令,主要可以分为以下几个方面:


目录:

  • 查看进程
  • 控制进程
  • 一次性任务设置
  • 周期性任务设置

前言:

在正式开始博客正文之前,这里先对进程做一个简单的概述。进程是什么?
进程实际上只是一段代码,不过与我们经常听到的程序不同的是。
程序是保存在介质中的代码,属于静态保存的代码;
而进程是在CPU及内存中运行的代码,属于动态保存的代码。

一、查看进程

查看进程我们通常使用的命令有两种:PS命令和TOP命令,接下来我就针对这两个命令分别进行详细的解释:

1、PS命令

PS命令用来列出系统中当前运行的那些进程,但与我们后面介绍的TOP命令不同的是,PS命令所展现的进程类似于快照,属于静态的;而TOP命令则属于动态的。
常用命令选项组合:

[[email protected] ~]# ps aux

其中,ps后面每个选项的意义分别为:

a————列出系统当前所有进程
u————使用以用户格式为主的方式输出
x————该用户在终端下的所有进程

界面示意截图:

“ps aux”所展现的列表的表头也有着自己不同的含义,从左到右分别为:

USER——代表进程在哪个用户下
PID——代表进程对应的进程号
%CPU——代表进程的CPU占用率
%MEM——代表进程的内存占用率
VSZ——虚拟内存占用
RSS——物理实际内存占用
TTY——终端(这里都是?的原因是,通过本地登录一般都是?)
STAT——当前进程所处的状态(不同字符代表不同的状态:S表示可中断的休眠进程;s表示父进程;<表示优先级高的进程;R代表正在运行的进程;l代表多线性进程;N代表优先级低;Z代表僵尸进程;D代表不可中断的休眠进程;+代表的是前台进程)
START——代表进程开始时间
TIME——代表该进程占用CPU的时间
COMMAND——进程本身名称

关于查看静态的进程表,还有另外一种查看方式

[[email protected] ~]# ps -elf

其中,ps后面每个选项的意义分别为:

-e————显示当前系统所有进程
-l————以长格式进行显示
-f————以完整格式进行显示

界面示意截图:

和“ps aux”一样该命令的表头同样有着不同的含义(上面介绍过的表头这里就不浪费口水复述了):

PPID——该进程的父进程的PID号
C——CPU占用率
PRI——用户态的进程优先级(数值越小优先级越高)
NI——内核态的进程优先级(数值越小优先级越高)
ADDR——进程状态(“-”表示正在运行)
SZ——该进程占用虚拟交换分区(swap)的容量
WCHAN——该进程在内核中的名称
TIME——运行时间

2、TOP命令

和之前的PS命令一样,TOP也是用来显示进程表的,不过PS显示的是静态的进程表,而TOP则显示的是动态的进程表(刷新频率:每3s刷新一次)。
具体界面截图:

二、控制进程

光是了解进程还不够,最主要的还是能够对进程进行控制,下面的几个命令就是日常用的最多的控制进程的命令:

(1)pgrep命令——根据特定条件查询进程PID信息

常用命令选项组合:

[[email protected] ~]# pgrep -l "log"

其中,“log”为进程关键字。具体界面截图如下:

[[email protected] ~]# pgrep -l -U root -t pts/0 

其中,“-U”后面为用户,“-t”后面为终端号:

(2)pstree命令——以树形结构列出进程信息

常用命令选项组合:

[[email protected] ~]# pstree -aup

其中,

-a——表示显示完整信息
-u——表示显示用户
-p——表示显示PID号

具体界面截图如下:

另外,还有一种组合仅仅只列出某个用户的进程树:

[[email protected] ~]# pstree -ap root

“-ap”后面为相关用户名
具体界面截图如下:

(3)kill、killall、pkill命令——终止进程

虽然这三个命令都是用来终止进程,不过三者之间仍有很大的区别。

kill命令——后面通常跟PID号,意为“杀死”指定某个进程;
killall命令——后面通常跟进程关键字,意为“杀死”含有关键字的所有进程;
pkill命令——后面通常跟“-U/-t”再加上用户名/终端,意为“杀死”指定用户/终端下的所有进程。

但三者都可以使用“-9”,将正在运行的进程“强制”终止。
三者具体界面截图如下:


(4)进程的调度

控制进程不光是掌控进程的“生死”,而是为了让进程能够更好的为我们工作,所以调度必不可少。
通常情况,所有键入的指令都会在前台运行,在运行大容量的复制、移动等操作时,前台运行会大大增加等待时间,所以我们可以在平常的指令后加“&”符号将其移入后台执行,并用jobs命令查看,例:

[[email protected] ~]# dd if=/dev/zero of=/mnt/aaa.txt bs=1G count=10 &
[[email protected] ~]# jobs -l

具体示意截图:

同样我们也可以用bg命令加序号(上面3987PID的前面就是序号)的方式将后台的进程调回前台执行,并使用“ctrl z”的快捷键将前台进程挂起,并以停止的方式调回后台。

`[[email protected] ~]# fg 1
^Z

具体示意截图:

三、at命令——一次性任务

常用选项组合:

[[email protected] ~]# at 17:00 2019-08-26

其中

“17:00”——表示一次性计划执行时间
“2019-08-26”——表示一次性计划执行日期

具体操作案例:

完成一次性计划任务后,可以使用atq命令进行查看、使用atrm命令进行对应的删除

[[email protected] ~]# atq
[[email protected] ~]# atrm 对应序列

具体操作截图:

四、Crontab命令——周期性任务

at命令被用于创建一次性计划任务,那么相对应的可多次执行的计划任务也同样存在。
Crontab命令
常用的选项:

-u——哪个用户进行执行
-e——对计划任务进行编辑
-l——查看所有的计划任务
-r——删除对应用户下所有周期性任务

选项后的格式为:(分时日月周)
分钟、小时、日期、月份、星期 命令
具体使用见截图:

其中各个时间数值的特殊表示方法:

“ * ” :表示该范围内的任意时间
“ ,”:表示间隔的多个不连续时间点
“ - ” :表示一个连续的时间范围
“ / ” :指定间隔的时间频率

具体应用实例截图:

以上,就是在Liunx系统中常用的关于进程方面的各种指令,谢谢各位的阅读!!让我们下篇博客再见。

原文地址:https://blog.51cto.com/14484404/2432717

时间: 2024-10-17 09:24:25

Centos 7之进程的控制与调度的相关文章

os -- 进程的控制

os -- 进程的控制 新建 模板 小书匠 参考 <计算机操作系统>(第四版) 汤小丹等编著 概念引入 进程控制 进程控制是最基本的功能,负责创建进程.结束进程等功能,一般由 OS 内核中的原语来实现 原语 所谓原语,就是由若干条指令组成的,用于完成一定功能的一个过程,算是不可分割的.最基本的操作 Note 接下来原语基本用于所有的操作 操作系统内核 操作系统将一些常用或者运行频率较高的模块(如时钟管理.进程调度等)常驻内存,这些就被称为 OS 内核 两大功能 支撑功能 中断处理 时钟管理 原

DHCP和TFTP配置以及CentOS 7上的服务控制

一.DHCP DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)用来给局域网的主机动态配置网络参数(IP地址.子网掩码.网关等),采用client/server架构 1.工作原理 ①DHCP Client以广播的方式发出DHCP Discover报文. ②广播域内所有的DHCP Server都能够接收到DHCP Client发送的DHCP Discover报文并且都会向其响应一个DHCP Offer报文. DHCP Offer报文中除了提供给DH

Linux进程退出详解(do_exit)--Linux进程的管理与调度(十四))

日期 内核版本 架构 作者 GitHub CSDN 2016-05-12 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度 Linux进程的退出 linux下进程退出的方式 正常退出 从main函数返回return 调用exit 调用_exit 异常退出 调用abort 由信号终止 _exit, exit和_Exit的区别和联系 _exit是linux系统调用,关闭所有文件描述符,然后退出进程. exit是c语言的库函数,他最

Linux下进程的创建过程分析(_do_fork/do_fork详解)--Linux进程的管理与调度(八)

日期 内核版本 架构 作者 GitHub CSDN 2016-05-12 Linux-4.5 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度-之-进程的创建 参照 分析Linux内核创建一个新进程的过程 前言 Unix标准的复制进程的系统调用时fork(即分叉),但是Linux,BSD等操作系统并不止实现这一个,确切的说linux实现了三个,fork,vfork,clone(确切说vfork创造出来的是轻量级进程,也叫线程,是共享资源的进程)

Linux进程调度器的设计--Linux进程的管理与调度(十七)

日期 内核版本 架构 作者 GitHub CSDN 2016-06-14 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度 前景回顾 进程调度 内存中保存了对每个进程的唯一描述, 并通过若干结构与其他进程连接起来. 调度器面对的情形就是这样, 其任务是在程序之间共享CPU时间, 创造并行执行的错觉, 该任务分为两个不同的部分, 其中一个涉及调度策略, 另外一个涉及上下文切换. 内核必须提供一种方法, 在各个进程之间尽可能公平地

Linux进程调度策略的发展和演变--Linux进程的管理与调度(十六)

日期 内核版本 架构 作者 GitHub CSDN 2016-06-14 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度 前言 进程调度 内存中保存了对每个进程的唯一描述, 并通过若干结构与其他进程连接起来. 调度器面对的情形就是这样, 其任务是在程序之间共享CPU时间, 创造并行执行的错觉, 该任务分为两个不同的部分, 其中一个涉及调度策略, 另外一个涉及上下文切换. 进程的分类 linux把进程区分为实时进程和非实时进程

Linux进程核心调度器之主调度器--Linux进程的管理与调度(十九)

日期 内核版本 架构 作者 GitHub CSDN 2016-06-30 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度 我们前面提到linux有两种方法激活调度器:核心调度器和 一种是直接的, 比如进程打算睡眠或出于其他原因放弃CPU 另一种是通过周期性的机制, 以固定的频率运行, 不时的检测是否有必要 因而内核提供了两个调度器主调度器,周期性调度器,分别实现如上工作, 两者合在一起就组成了核心调度器(core sched

Linux进程核心调度器之主调度器schedule--Linux进程的管理与调度(十九)【转】

转自:http://blog.csdn.net/gatieme/article/details/51872594 日期 内核版本 架构 作者 GitHub CSDN 2016-06-30 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度 我们前面提到linux有两种方法激活调度器:核心调度器和 一种是直接的, 比如进程打算睡眠或出于其他原因放弃CPU 另一种是通过周期性的机制, 以固定的频率运行, 不时的检测是否有必要 因而内

Linux进程退出详解(do_exit)--Linux进程的管理与调度(十四)

Linux进程的退出 linux下进程退出的方式 正常退出 从main函数返回return 调用exit 调用_exit 异常退出 调用abort 由信号终止 _exit, exit和_Exit的区别和联系 _exit是linux系统调用,关闭所有文件描述符,然后退出进程. exit是c语言的库函数,他最终调用_exit.在此之前,先清洗标准输出的缓存,调用用atexit注册的函数等, 在c语言的main函数中调用return就等价于调用exit. _Exit是c语言的库函数,自c99后加入,等