CentOS8基础篇9:进程的延迟与周期调度

news2025/1/11 20:57:24

一、进程的概念

进程:开始执行但是还没有结束的程序的实例

程序:包含可执行代码的文件

进程与程序的关系

进程由程序产生,是一个运行着的、要占系统资源的程序

进程不等于程序

浏览网络时,打开多个IE浏览器程序;不同的IE浏览器打开不同的网页,但每个IE浏览器都使用了相同的iexlporer.exe程序。

操作系统如何辨认相同程序打开的不同的网页,并将每一个执行中的程序识别出来?

二、进程的调度

在Linux系统中,每运行一个程序时系统就需要启动一个进程,进程的启动可以通过手动的方式直接在命令行下完成,也可以通过调度命令有计划地执行。常用的调度命令有at和crontab。

调度启动

at命令

crontab命令

1.延迟性调度命令at

功能:指定时间运行指定的程序

格式:at  [-f 文件] [-m ] 时间  

-f  : 指定存放计划执行命令的文件

-m: 作业结束后发送邮件给执行at命令的用户

时间:任务执行的时间,可采用相对和绝对两种方法

绝对表示法: MMDDYY或MM/DD/YYYY,也可指定 today 或 tomorrow 来表示今天或明天

相对表示法:now+num+时间单位,其中的时间间隔可以是 minutes, hours, days, weeks

〖例5〗 让系统在两天后的17:30执行文件data中指定的作业

#at  -f  data  17:30 +2 days

〖例6〗一分钟以后在tty1中,提示 “hello !!”

 at  now + 1 minutes

 at>  echo “hello!  !” >/dev/tty1

 at> ctrl + D

〖例7〗明天凌晨2点 将正在登陆的用户写入/tmp/aaa.txt

  at  2:00  tomorrow

  at>  w > /tmp/aaa.txt

  at> ctrl + D

〖例8〗一分钟以后,在家目录中建立文件夹 at

 at  now + 1 minutes

 at>mkdir  at

 at> ctrl + D

2.周期性调度命令crontab

功能:计划调度服务

crontab –u user {-e | -l | -r}

-u:设定user的时程表

-e:使用vi设定时程表

-l:列出目前的时程表

-r:删除目前的时程表

crontab –u user file

file:存放时程表的文件

时程表格式:minute hour day month day-of-the-week command

空格分割

*代表任意的值

-表达一个范围

用逗号分隔表达一个值的列表

按 ctrl+D结束

〖例9〗 每周四早晨 8:30,提醒用户上午 10:00 有一个会议

#crontab

30  8   *  *  4  echo  “meeting at 10:00 AM” > /dev/tty1

Ctrl + D

如果需要修改周期性任务,可以执行:

#crontab  -e

此时系统会打开一个vim编辑器,用于修改调度任务。

三、进程的查看

1.查看系统进程信息的命令ps

命令语法:    ps  [选项]

选项说明:

-A:显示系统中所有进程的信息,与-e具有相同的功能。

-a:显示所有用户进程的信息。

-f:完整的显示进程的所有信息。

-l:以长格式显示进程信息。

-r:只显示正在运行的进程。

-u:显示面向用户的格式(包括用户名、CPU及内存使用情况等信息)。

-x:显示所有非控制终端上的进程信息。

-p:显示由进程ID指定的进程的信息。

-t:显示指定终端上的进程的信息。

〖例10〗查看系统中终端上所有用户进程的所有信息。

# ps  aux

如果显示的信息过多可以使用管道命令分页查看输出信息:

# ps  aux| less

如果想查看用户glenda的所有进程信息可以执行下面的命令:

# ps  aux | grep  Glenda

2.查看各进程继承关系的命令pstree

pstree命令以树状结构显示系统进程的继承关系。树状图将会以 pid (如果有指定) 或是以 init为根,如果指定user,则树状结构只显示该用户所拥有的进程。

命令格式:    pstree [选项] [pid|user]

选项说明:

-a:显示该进程的完整继承关系,如果是被内存置换出去的进程则会加上括号。

-c 如果有重复的进程名, 则分开列出 (默认值是会在前面加上 * )。

pid|user:查看指定根进程(pid)或用户(user)所拥有的进程。

四、进程的终止

终止进程的kill 命令

功能:结束指定进程的运行

格式:kill [-9]  进程号

进程号:每个进程都有一个PID

-9 :强行结束指定进程的运行

〖例11〗 终止sshd服务进程的执行。

#ps  -A | grep  sshd//查询sshd服务进程的pid

#kill   1097   //1097是sshd服务进程的pid

通过进程名终止进程的killall命令

功能:

killall命令通过进程的名字,直接杀死进程。通常与ps命令结合在一起使用的。

格式:killall [-9]  进程名

〖例12〗终止所有sshd进程。

# killall  sshd

五、作业控制的概念

作业控制是指控制当前正在运行的进程的行为。使用作业控制,用户可以同时运行多个作业,并在需要时在作业之间进行切换。例如,系统资源紧张的时候,用户可以挂起一个不紧急的、正在运行的进程,稍后再恢复它的运行。Shell会记录所有系统中的进程,并保持对进程状态的跟踪。

例如,完整地看完一个DVD碟是一个完整的任务,由一个独立的进程来完成。看碟的过程是进程处于运行状态,但是在观看的过程中,遇到电话、敲门等事务的干扰,此时电话、敲门是紧急、首要需解决的事务,不是非常紧急的事情——看DVD的过程——将被暂停,暂停的过程即是正在运行进程的挂起。当处理完突发事务——电话或敲门——以后,可以将被暂停的DVD播放过程重新激活,继续完成这个任务。这即是一个简单的作业控制的例子:运行à暂停à运行。

命令

功能说明

Ctrl+d

正常终止一个正在前台运行的进程

Ctrl+c

强行终止一个正在前台运行的进程

Ctrl+z

挂起一个正在前台运行的进程

jobs

查看后台运行或者被挂起的进程

bg(background)

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

fg(foreground)

将被挂起的进程调到前台运行

cmd &

直接在后台启动运行一个新的命令,不占用终端资源

kill

杀死进程

项目三:进程的延迟与周期调度

操作过程

$at  4:50pm

at> echo “I’m off work now. ”> /dev/tty1

at><EOT>

$crontab

30  5  *  *  *  ls  -l | grep  .port > list

按 ctrl+D结束

$./test

$ps  aux | grep  test

$kill  -9  6424

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/379839.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文讲清楚如何进行主数据编码

主数据编码作为一类重要的数据资源&#xff0c;在信息化建设中具有重要的地位和作用&#xff0c;是保证现有信息系统和未来新系统建设成功的关键因素&#xff0c;决定着系统中的信息一致性。 编码&#xff0c;是一件简单的事情&#xff0c;但绝对不是一件容易做好的事情&#…

FPGA案例开发手册——基于全志T3+Logos FPGA核心板

前 言 本文档主要提供评估板FPGA端案例测试方法,适用的开发环境为Windows 7 64bit和Windows 10 64bit。 本文案例基于创龙科技的全志T3+Logos FPGA核心板,它是一款基于全志科技T3四核ARM Cortex-A7处理器 + 紫光同创Logos PGL25G/PGL50G FPGA设计的异构多核全国产工业核心板…

PImpl(Pointer to Implementation)指向实现的指针 [使用ChatGPT学习系列]

PImpl是Pointer to Implementation的缩写&#xff0c;也被称为“编译期实现”&#xff0c;是一种C设计的模式。 用于将类的实现细节与其公共接口分离开来。该模式的核心思想是 通过一个指向类的实现的指针来隐藏类的实现细节&#xff0c;从而提高类的封装性和安全性。PImpl是一…

「考研算法」

考研算法 前言 本系列文章涉及的算法内容&#xff0c;针对的是哈尔滨工业大学854科目。在本文中通过具体的算法题进行讲解相应算法。 今天涉及的算法主要有线性筛&#xff0c;十大排序中快速排序和归并排序。 后续会有动态规划的相关算法以及尝试模型的总结&#xff0c;如果…

[Java·算法·中等]LeetCode17. 电话号码的字母组合

每天一题&#xff0c;防止痴呆题目示例分析思路1题解1分析思路2题解2题目 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。…

本科毕业设计-基于ORB SLAM3的多从机SLAM导航系统

耗时&#xff1a;两个月 需求&#xff1a;多从机协作 多地图系统 稠密建图 定位 导航 硬件&#xff1a;二个D435 一台X86主机&#xff08;CPU:13600kf 内存:32G&#xff09; X86主机环境&#xff1a;ubuntu18.04 opencv3.2 ROS1 主要代码参考&#xff1a;ORB-SLAM3 主要调用…

【CNN】FractalNet——与DenseNet有异曲同工之妙

FractalNet论文名称&#xff1a;FractalNet: Ultra-Deep Neural Networks without Residuals FractalNet论文下载链接&#xff1a; FractalNet&#xff08;分型网络&#xff09;&#xff0c;2016年Gustav Larsson首次提出。 &#xff08;1&#xff09;分形网络不像resNet那样…

嵌入式 Linux 文件IO操作

目录 Linux 文件操作 1 Linux 系统环境文件操作概念 2 缓冲 IO 文件操作 1 文件的创建&#xff0c;打开与关闭 fopen 函数函数 2 freopen 函数 3、fdopen函数 4、fclose函数 5、格式化读写 6、单个字符读写 7、文件定位 8、标准目录文件 9、非缓冲IO文件操作 Linux 文…

十二、MyBatis的高级映射及延迟加载

1 数据库表的准备 准备数据库表&#xff1a;一个班级对应多个学生。班级表&#xff1a;t_clazz。学生表&#xff1a;t_stu 2 环境搭建 创建模块 打包方式&#xff1a;jar 引入依赖&#xff1a;mybatis依赖、mysql驱动依赖、junit依赖、logback依赖 配置文件&#xff1a;…

C#/.net程序调用python

C#/.net程序调用python C#的优势在于window下的开发&#xff0c;不仅功能强大而且开发周期短。而python则有众多的第三方库&#xff0c;可以避免自己造轮子&#xff0c;利用C#来做界面&#xff0c;而具体实现使用python来实现可以大大提高开发效率。本文介绍如何使用pythonnet…

Kubernetes初始化容器

初始化容器 之前了解了容器的健康检查的两个探针&#xff1a;liveness probe&#xff08;存活探针&#xff09;和readiness probe&#xff08;可读性探针&#xff09;的使用方法&#xff0c;我们说在这两个探针是可以影响容器的生命周期的&#xff0c;包括我们之前提到的容器的…

如何或者无插件Web页面监控播放软件LiveNVR的固定视频流地址,实现大屏上墙、播放、视频分析等目的

1、LiveNVR介绍 LiveNVR的安防监控的视频直播&#xff0c;可以按标准的Onvif/RTSP协议接入监控设备&#xff0c;也可以通过海康、大华、天地伟业等厂家私有SDK接入监控&#xff0c;实现web页面的播放和录像回放。 可以分发HTTP-FLV、WS-FLV、WebRTC、RTMP、HLS(M3U8)、RTSP等多…

Linux安装Tomcat9

默认Linux已经安装了JDK 并且已经配置好了环境变量 下载链接 Tomcat9 下载完成如下图 &#xff0c;这个下载完成需要看一下&#xff0c;有的包里bin目录内缺少bootstrap.jar文件&#xff0c;因此下载包的时候要看看bin目录下的是不是有这个文件&#xff0c;如果没有启动Tomcat…

CHAPTER 1 Linux 集群

集群1 集群介绍2 集群分类1. 高可用性集群&#xff08;High Availability Cluster&#xff09;HA2. 负载均衡集群&#xff08;Load Balance Cluster&#xff09;LB3. 高性能集群&#xff08;High Performance Computing Cluster&#xff09;HPC3 HA集群逻辑架构1. 信息层/基础架…

Qt页面菜单栏、工具栏、状态栏

1、菜单栏 QMenu *editMenu ui->menuBar->addMenu("编辑(&E)");2、编辑菜单栏及工具栏内容 QAction *action_copy editMenu->addAction(QIcon("copy.png"),QString("复制(&c)"));action_copy->setShortcut(QKeySequence(…

数学建模竞赛的一些心得体会

1.数学建模经验首先简要的介绍一下我的情况。数学建模我也是在大一暑假开始接触的&#xff0c;之前对其没有任何的了解。我本身对数学也有相对较厚的兴趣&#xff0c;同时我也是计算机专业的学生&#xff0c;因此&#xff0c;我觉得我可参加数学建模的这个比赛。大一的暑假参加…

Linux->进程终止和等待

目录 1. 进程终止场景 1.1 进程退出码 1.2 进程常见退出方式 2. 进程等待 2.1 进程等待的必要性 2.2 进程等待的方式 wait()方式 waitpid()方式 options参数 status参数 1. 进程终止场景 代码运行完毕&#xff0c;结果正确 代码运行完毕&#xff0c;结果不正确 代码异…

【编程架构实践】关于技术栈和架构

架构是什么&#xff1f;老生常谈了。那就看看ChatGPT怎么说&#xff1a;软件架构是软件工程师在设计一个软件系统时&#xff0c;定义系统架构结构的一种科学方法。它指的是软件系统在软件工程师关注功能、性能和安全等质量属性的条件下&#xff0c;组织系统的方式。换句话说&am…

Flask源码篇:wsgi、Werkzeug与Flask启动工作流程

目录1 wsgi介绍2 使用wsgi实现一个web应用3 Werkzeug介绍4 Flask工作流程分析&#xff08;1&#xff09;创建Flask app&#xff08;2&#xff09;启动Falsk app&#xff08;3&#xff09;分析run_simple方法&#xff08;4&#xff09;分析make_server方法&#xff08;5&#xf…

内容分发网络

介绍 CDN 内容分发网络&#xff08;英语&#xff1a;Content Delivery Network 或 Content Distribution Network&#xff0c;缩写&#xff1a;CDN&#xff09;是建立并覆盖在承载网上&#xff0c;由不同区域的服务器组成的分布式网络。将源站资源缓存到全国各地的边缘服务器&…