Linux 进程管理与调度

一、前言

        本篇文章是对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已经被删除

六、最后的话

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

猜你喜欢

转载自blog.csdn.net/as12138/article/details/131629182