Linux 进程管理与调度

news2024/11/18 11:49:06

一、前言

        本篇文章是对Liunx的进程管理调度的实验过程记录,读者可以通过这篇文章加深对Liunx中进程管理和调度的理解,本文所使用的操作系统为RHEL 8.0版本,为在Vmware workstation中运行的虚拟机。

二、实验目的

        ① 掌握linux进程相关操作

        ② 使用后台命名并掌握它们的作用

        ③ 掌握周期任务的使用

        ④ 掌握定时任务的使用

三、实验内容

        ① 后台进程实验,主要使用jobs fg bg等命令

        ② 编辑/etc/crontab文件设置系统周期任务

        ③ 给用户root创建周期任务

        ④ 创建root用户的定时任务

四、实验原理

① 后台进程实验,主要使用`jobs`、`fg`、`bg`等命令:

        通过在终端中使用`jobs`命令可以查看当前在后台运行的任务列表,`fg`命令可以将一个后台任务切换到前台继续运行,`bg`命令可以将一个挂起的任务切换到后台继续运行。这些命令可以让用户在执行任务时灵活地切换任务的状态。

② 编辑/etc/crontab文件设置系统周期任务:

        `/etc/crontab`文件是一个用于设置系统周期任务的配置文件。通过编辑该文件,用户可以指定在系统特定时间或周期性地执行某个命令或脚本。这些周期任务可以用于执行诸如数据备份、系统维护等定期性的任务。

③ 给用户root创建周期任务:

          `root`用户是操作系统的超级用户,具有最高权限。通过给`root`用户创建周期任务,可以确保特定的任务以超级用户权限在系统中运行。这在需要进行系统级别的操作或者需要特权权限的任务时非常有用。

④ 创建root用户的定时任务:

        创建`root`用户的定时任务与上述③类似,它允许将定期执行的任务分配给`root`用户。这样可以确保任务以最高权限在系统中运行,并且在需要进行特权操作时可随时执行。

        需要注意的是,以上提到的操作可能需要管理员权限,并且在进行任何更改之前,请务必了解所进行操作的风险和可能带来的影响。

五、实验过程

(一)后台进程实验,主要使用jobs fg bg等命令

        ① 后台进程管理

        编写python脚本打印1-3000、每两秒打印一次

Step1:采用nano编辑器使用如下命令创建python文件

[root@localhost /] # nano test.py

       输入如下内容

Step2:输入如下命令运行之前创建的python文件

[root@localhost /] # python3 ./test.py

        观测结果,查看能否输入其他命令,观测完毕后使用ctrl + z 中断程序执行

自行观测即可(图找不到了)

Step3:输入如下命令,重新执行该文件

[root@localhost /] # python3 ./test.py&

        观测结果,并输入 shell命令查看

        与上次结果相比,本次结果多了[2] 3634的提示,可以输入指令,且不能使用ctrl + z中断。

Step4:接着尝试使用ps命令查看结果

        发现相关的3634进程存在

Step5:使用如下命令杀掉相关进程

[root@localhost /] # kill -9 3634 

        输出结果如下,表明该进程已被杀死

        ② 让后台任务重定向

        使用如下命令进行文件创建操作: 

[root@localhost /] # python3 ./test.py>out.txt

        观察结果:该目录下创建了out.txt文件,且当该py文件运行时,运行结果会重定向到out.txt文件中。

        ③ 把错误信息也定向到out.txt

Step1:运行如下程序

Step2:查看运行结果

        在Liunx中输入如下命令查看结果:

[root@localhost /] # python3 ./test1.py>out1.txt>&1 &

        结果如下:

         查看out1.txt并解释原因:

原因如下: 

         >out1.txt>&1&表示将命令及其错误重定向到了out1.txt且表示程序将在后台运行,所以文件out1.txt中会有py程序的运行结果,如果出错,其错误结果也会在其中显示。

        ④ 用jobs查看后台进程,对看到的结果进行说明

说明:python3 ./test.py已停止运行,但python3./test.py>out.txt&仍在运行

        ⑤ 然后用fg命令并查看结果

         ⑥ ctrl + z 后,再用jobs查看现在进程的状态

         ⑦ 用bg继续执行后台暂停的进程

(二)编辑/etc/crontab文件设置系统周期任务

Step1:查看crond是否运行,并查看它的状态,如果没有启动则启动crond守护进程 

        实验结果如下: 

 Step2: 修改/etc/crontab使得每三分钟把系统日期写入 /home/mydate.txt

         查看结果如下:

 Step3:删除这个定时任务

(三)给用户root创建周期任务

        ① 每分钟发一次通知xixi响铃

         ② 查看用户的周期命令

        ③ 删除root的周期命令

 (四) 创建root用户的定时任务

Step1:在/root下创建文件 test.at

Step2: 创建定时任务1分钟后删除test.at

Step3:一分钟后查看结果,发现test.at已经被删除

六、最后的话

        本次实验为多个小实验组合而成,所以比较分散,还需要一个一个自行理解。

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

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

相关文章

RabbitMQ学习笔记9 TTL死信队列+延迟队列实战

我们去新建一个交换机: 然后我们再用这种方法直接创建一个队列: 点击bind这样我们的交换机和队列就绑定到一起了。 然后我们要新建普通队列,设置过期时间,指定死信交换机。 发布一条消息。 它会把队列传递到死信队列中去。

Openlayers实战:overlay上播放视频

在企业或者城市等的宣传上,视频能很好的传达出一些信息。 那么在openlayer中如何展示视频呢, 可以通过overlay的方式,点击某一个点,弹出overlay层,展示出视频,并自动播放。下面的实战就能够达到这种效果。 效果图 源代码 /* * @Author: 大剑师兰特(xiaozhuanlan),还…

记忆——记忆宫殿——数字编码

数字编码 数字编码相对简单,与乘法口诀的工作量类似。如果想要达到高手的水平,熟练程度也需要达到乘法口诀的程度。 数字编码的方式是直接创造出数字与形象的唯一的对应关系,然后熟记。 0-9,00-99是什么 最常用的编码是将0-9和…

【C++11】lambda表达式 的定义、性质和用法

定义 Lambda表达式是C11引入的一种函数对象的匿名表示方法。它可以用于定义轻量级的、临时的、内联的函数对象,通常用于函数式编程的场景。 语法结构 Lambda表达式的 基本语法 如下: lambda表达式书写格式:[capture-list] (parameters) m…

java8 新特性 —— Lambda 表达式

我们来看一段老版本的示例代码,其对一个含有字符串的集合进行排序:(示例代码创建了一个匿名内部类作为入参。) // Collections 工具类提供了静态方法 sort 方法,入参是一个 List 集合,和一个 Comparator 比…

C++栈和队列(详解+刷题)

👂 爱要坦荡荡 - 萧潇 - 单曲 - 网易云音乐 👂 武侯祠 - 闫东炜 - 单曲 - 网易云音乐 👂 You Are My Sunshine - Angelika Vee - 单曲 - 网易云音乐 (๑•̀ㅂ•́)و✧ O(∩_∩)O (ง •_•)ง (~﹃~)~zZ …

微鳄三六五软件,企业实现数字化转型仅需2万

关键词:OA办公系统、知识管理系统、群晖NAS 编者按: 疫情对全球经济有着巨大冲击,有调查表明80%的中小企业营收下滑,有30%的中小企业营收减半。天翎特此推出万元即可实现数字化管理方案,为企业提供办公管理、项目管理、…

Canvas.arcTo() 的使用,画一条带圆角的线段,画一个思维导图一基础

Canvas.arcTo() 的使用,画一条带圆角的线段,画一个思维导图一基础 一、方法定义 canvas.arcTo 这个方法还是比较难理解的。因为它不是直观的绘制路径,而是间接的。 它的参数是这样的。 canvas.arcTo(ax,ay,bx,by,radius)它是由两个点和一个…

密码学学习笔记(十):Digital Signatures - 数字签名1

什么是数字签名? 想象一下一下情景: Alice生成两个密钥:一个公钥𝑃𝐾𝐴 & 对应的密钥𝑆𝐾𝐴, 发布公钥,保留密钥然后Alice使用𝑆&#x1d4…

ARG DEBIAN_FRONTEND=noninteractive作用说明

使用 在Dockerfile中使用ARG指令定义变量并为其指定一个默认值。ARG指令用于在构建过程中传递变量的值。 对于DEBIAN_FRONTENDnoninteractive,它定义了一个名为DEBIAN_FRONTEND的变量,并将其默认值设置为noninteractive。在这个上下文中,no…

【uniapp开发h5】点击复制微信号并自动打开微信应用,类似可以唤起淘宝、知乎应用等

效果展示: 准备工作: 引用jquery.js 和 clipboard.min.js jQuery就不用多说了,而clipboard.min.js 是一个 JavaScript 库,用于实现网页上的复制到剪贴板功能。它提供了一种简单的方式来处理复制操作,无需使用浏览器原…

Ubuntu 包管理的 20 个“apt-get”命令

动动发财的小手,点个赞吧! 在引入 apt 命令之前,apt-get 命令是基于 Debian 的 Linux 发行版中使用的主要包管理命令。 使用 apt-get 命令,您可以在系统上安装、删除、升级、搜索和管理软件包。然而,从 Ubuntu 16.04 和…

22运动估计(matlab程序)

1.简述 实验目的 熟悉运动估计的块匹配(BMA)算法原理,编程实现全搜索算法(三步搜索或钻石搜索算法),了解运动估计在混合编码器中的作用。 实验内容 1)编写全搜索算法函数,将运动矢量…

使用Llama.cpp在CPU上快速的运行LLM

大型语言模型(llm)正变得越来越流行,但是它需要很多的资源,尤其时GPU。在这篇文章中,我们将介绍如何使用Python中的llama.cpp库在高性能的cpu上运行llm。 大型语言模型(llm)正变得越来越流行,但是它们的运行在计算上是非常消耗资源…

MongoDB教程-5

复制是跨多个服务器同步数据的过程。复制在不同的数据库服务器上提供数据的多个副本,从而提供冗余并提高数据可用性。复制可防止数据库丢失单个服务器。复制还允许您从硬件故障和服务中断中恢复。通过增加数据拷贝,您可以将其中一个用于灾难恢复、报告或…

Spring系列4 -- Bean的作用域和生命周期

目录 1. 案例 2. 作用域定义 2.1 Bean的6种作用域 2.2 设置作用域 3. Sring的执行流程 4. Bean的生命周期 思考: 为什么不是先进行初始化然后再进行设置属性呢? 1. 案例 假设现在有⼀个公共的 Bean,提供给 A ⽤户和 B ⽤户使⽤,然⽽在使⽤的途中…

【面试】Hbase

逻辑模型 1 NameSpace 命名空间,类似于关系型数据库的database概念,每个命名空间下有多个表。Hbase有两个自带的命名空间,分别是hbase和default, hbase中存放的是HBase内置的表, default表是用户默认使用的命名空间。 2 Region 类似于关系型数据库的表…

综合 案例

案例1:淘宝焦点图布局 基本结构 1.大盒子我们类名为: tb-pro淘宝广告 2.里面先放一张图片 3.左右两个按钮用链接。左箭头prev 右箭头 next 4.底侧小圆点用ul 类名为pro-nav 注意: 1.如果一个盒子既有left属性也有right属性,则默认会执行lef…

Nvidia Jetson Orin系列配置教程

Nvidia Jetson Orin系列配置教程包含Orin系列的安装及配置办法,目前最为推荐的办法是通过Nvidia SDK Manager进行安装,详细内容如下: 法1:通过Nvidia SDK Manager进行安装 1.下载工具 前往Nvidia SDK Manager下载工具 2.安装工…

Lesson3-3:OpenCV图像处理---图像平滑

图像平滑 学习目标 了解图像中的噪声类型了解平均滤波,高斯滤波,中值滤波等的内容能够使用滤波器对图像进行处理 1 图像噪声 由于图像采集、处理、传输等过程不可避免的会受到噪声的污染,妨碍人们对图像理解及分析处理。常见的图像噪声有高…