Loading [MathJax]/jax/input/TeX/jax.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >实验(十)任务管理、进程管理

实验(十)任务管理、进程管理

原创
作者头像
esse LL
修改于 2023-05-17 04:37:13
修改于 2023-05-17 04:37:13
1.4K0
举报
文章被收录于专栏:操作系统实验操作系统实验

1. 新建工作目录

目录命名为班级加姓名的格式,如 1banz3

参考代码:

代码语言:shell
AI代码解释
复制
mkdir 1banz3
# 切到 1banz3 目录:
cd 1banz3

2. 后台运行任务

新建 test.sh 脚本,输入以下代码:

代码语言:shell
AI代码解释
复制
#!/bin/bash
int=1
while [ $int -le 10 ]
do 
	echo $int
	int=$[$int+1]
	sleep 1s
done

其中,while循环的条件是变量 int<=10 ,每次循环都打出变量int的值,然后int的值增加1,随后程序等待1秒,等待结束后再进入下次循环。

解释运行脚本,脚本名称后加上 & 参数使程序在后台运行(而非采取默认的前台运行方式):

代码语言:shell
AI代码解释
复制
bash test.sh &

程序运行后,每打印一个数字,都会暂停一秒。因此,打印10个数字总共暂停了10次,程序一共用时10秒种。类似的,打印 x 个数字,每次暂停 y 秒,则用时 x×y 秒 。

可以使用 jobs 命令查看后台运行的进程。-l 选项表示列出进程ID,-s 选项表示查看后台已暂停的任务,-r 选项表示查看处于运行状态的任务。

3. fg 和 bg 操作

使用fg命令将后台暂停的任务恢复到前台运行,不带参数的情况下,会恢复带有"+"标志的任务,也可以使用参数指定任务ID。

使用bg命令可以让后台暂停的任务继续在后台执行,类似fg操作,不带参数的情况下bg默认恢复带有"+"标志的任务,也可以使用参数指定任务ID。

例如, vi a.sh & 命令会启动vi程序,并在后台运行,通过 jobs 命令可以看到此任务处于挂起(suspend)状态:

使用jobs命令列出所有任务(任务)
使用jobs命令列出所有任务(任务)

运行fg命令,带有+号的任务会恢复到前台运行,恢复后可以照常使用vi文本编辑程序。

4. 暂停和恢复任务

新建 work.sh 脚本,输入以下代码:

代码语言:shell
AI代码解释
复制
#!/bin/bash
for((i=1;i<=10;i++))
do 
	echo $i 
	sleep 1s
done
find /usr/ -name lib > findresult.txt

其中,每次循环都会打出变量i的值,然后暂停一秒钟,一共循环10次。

解释运行脚本,按 Ctrl Z 中止(暂停)该进程并放入后台,然后用job命令查看后台的任务。

解释运行程序,中止任务,使用jobs命令查看对应的任务
解释运行程序,中止任务,使用jobs命令查看对应的任务

使用fg命令将后台暂停的任务恢复到前台运行。

再次按 Ctrl Z 中止该进程并放入后台。

使用fg命令回复任务至前台,并再次中止任务
使用fg命令回复任务至前台,并再次中止任务

使用bg命令让后台暂停的任务继续在后台运行。

任务在后台继续运行(打出10表示任务已运行完毕)
任务在后台继续运行(打出10表示任务已运行完毕)

5. 查看进程

pstop 命令可以查看系统进程及相关信息

使用 ps 命令可以用 -l 选项查看进程的详细信息, -u 选项查看进程对应的用户。

6. 查看指定进程

解释运行 work.sh 脚本文件,在运行过程中按 CTRL Z 将此任务放入后台:

将 work.sh 任务放入后台
将 work.sh 任务放入后台

使用 ps 命令查看执行work.sh任务的进程ID:

代码语言:shell
AI代码解释
复制
# -aux 选项表示查看所有详细信息
ps -aux | grep "work.sh"
# -ef 选项表示查看全格式信息
ps -ef | grep "work.sh"

7. 监听指定进程

使用ps命令查看work.sh任务,可以看到对应的进程PID是86。(此处按实际运行结果,查看到进程PID有多种可能,注意根据查看到的PID修改命令中对应的PID)

代码语言:shell
AI代码解释
复制
top -b -n 10 -p 86 > worklog.txt &
# 注意修改进程PID,这个例子中是86,自己用命令的时候要改成上一步看到的PID

执行top命令,并使其在后台运行,可以通过 jobs 命令看到多出了一条新的任务记录,显然是top命令对应的任务:

使用 fg 命令恢复带“+”号的work.sh任务至前台,运行完毕后,top任务也会随之运行完毕。

可以用 cat 命令查看worklog.txt中top命令的监听结果:

代码语言:shell
AI代码解释
复制
cat worklog.txt

执行结果如下:(仅截图部分内容)

8. 杀灭进程(一)

使用 kill 命令可以终止进程, -l 选项表示列出全部信号名称。kill命令实际上是向进程发送信号,信号有很多种,对应多种用途。若不指定信号参数,将发送 SIGTERM(15) 终止指定进程。

kill命令可以使用 -KILL 选项强制结束进程,对应的信号为 SIGKILL(9)

首先,(1)使用yum安装httpd

代码语言:shell
AI代码解释
复制
sudo yum install httpd

(2)启动httpd服务

代码语言:shell
AI代码解释
复制
systemctl start httpd

(3)查看httpd相关进程

代码语言:shell
AI代码解释
复制
ps -aux | grep "httpd" | grep -v "grep"
# 也可以使用pstree命令查看树状图形式的进程关系
pstree -p | grep "httpd" | grep -v "grep"
查看进程树状图
查看进程树状图

(4)使用kill命令终止httpd的一个子进程(668号进程)

代码语言:shell
AI代码解释
复制
kill 668
终止668号进程
终止668号进程

(5)重启httpd的主进程(注意参数是阿拉伯数字1)

代码语言:shell
AI代码解释
复制
kill -1 663
重启httpd进程
重启httpd进程

(6)使用 killall 命令杀死httpd进程

代码语言:shell
AI代码解释
复制
killall httpd

再次查看httpd的相关进程,结果为空:

使用killall杀死httpd进程
使用killall杀死httpd进程

9. 杀灭进程(二)

也可以使用 pkill 命令终止进程

首先,(1)用vi打开 work.sh 脚本,加上&参数使任务在后台运行

代码语言:shell
AI代码解释
复制
vi work.sh &
启动vi程序
启动vi程序

(2)使用ps命令查看有关进程

代码语言:shell
AI代码解释
复制
ps -aux | grep "work.sh" | grep -v "grep"
使用ps查看进程
使用ps查看进程

(3)使用pkill命令强制关闭进程

代码语言:shell
AI代码解释
复制
pkill -9 vi
使用pkill终止进程
使用pkill终止进程

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【科研利器】进程管理
中断是系统用来影响硬件设备请求的一种机制,它会打断进程的正常调度和执行,然后调用内核中的中断处理程序来影响设备的请求
自学气象人
2022/11/14
9970
【科研利器】进程管理
linux 后台运行进程:& , nohup
当我们在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件。对于密集访问磁盘的进程,我们更希望它能够在每天的非负荷高峰时间段运行(例如凌晨)。为了使这些进程能够在后台运行,也就是说不在终端屏幕上运行,有几种选择方法可供使用。
DevOps在路上
2023/05/16
5.9K0
linux 后台运行进程:& , nohup
Linux系列之进程管理
进程是正在运行的程序,Linux系统通常有数百个进程同时运行。本文就来介绍下Linux是如何进行进程管理的。
chuckQu
2022/09/20
5280
Linux系列之进程管理
linux系统管理初学者指南 基于centos 7.6下载_centos查看运行的进程
进程管理包括进程调度、中断处理、信号、进程优先级、进程切换、进程状态、进程内存等等。
全栈程序员站长
2022/10/03
1.2K0
linux系统管理初学者指南 基于centos 7.6下载_centos查看运行的进程
linux进程管理:进程,程序,线程 & 9个进程管理工具 & 作业控制
程序 ------》系统调用-------》缓存(内存) -------》cpu处理 执行任务
用户5807183
2019/09/23
3.8K0
linux进程管理:进程,程序,线程 & 9个进程管理工具 & 作业控制
进程管理-Linux每日一练(6)
平时学的是这五种状态新建、就绪、运行、阻塞、终止,但是在Linux里面可以查看到的要更加详细,如下命令的 STAT 列就是展示了状态
机智的程序员小熊
2020/09/17
9990
进程管理-Linux每日一练(6)
Linux进程管理详细解读
Linux系统为多用户多任务系统 生物软件运行时要能够查看运行状态 实时监控软件运行状态 例如 CPU 内存使用情况等 当运行出现错误时 要能够及时杀死任务 以及任务前后台切换 是否挂起等操作 。
生信喵实验柴
2021/12/15
1.1K0
Linux进程管理详细解读
Linux—进程管理
当程序运行的时候会由父进程通过fock创建子进程来处理任务;子进程被创建后开始处理任务,当任务处理完毕后就会退出,然后子进程会通知父进程来回收资源;如果子进程处理任务期间,父进程意外终止了,那么这个子进程就变成了僵尸进程。
Alone-林
2022/08/23
5.2K0
Linux—进程管理
Linux的进程管理
而 kill 命令用于输出特定的信号给指定进程号(PID)的进程并根据该信号完成指定的行为,其中可能的信号有进程挂起、进程等待、进程终止等
姚远OracleACE
2023/04/06
1.7K0
Linux的进程管理
Linux进程管理
每个用户均可同时运行多个程序。为了区分每一个运行的程序,Linux给每个进程都做了标识,称为进程号(process ID),每个进程的进程号是唯一的。
Java3y
2018/07/30
7.3K0
Linux进程管理
Linux从入门到精通(十)——进程管理
​ 进程就是运行中的程序,一个运行着的程序,可能有多个进程。 比如 LinuxSir.Org 所用的 WWW 服务器是 apache 服务器,当管理员启动服务后,可能会有好多人来访问,也就是说许多用户来同时请求 httpd 服务,apache 服务器将会创建有多个 httpd 进程来对其进行服务。
传说之下的花儿
2023/04/16
1.5K0
Linux从入门到精通(十)——进程管理
Linux之进程管理(3)作业管理
后台作业虽然被送往后台允许,但其依然与终端相关;退出终端,将关闭后台作业。如果希望送往后台后,同时剥离与终端的关系。可以使用下面两种方法:
py3study
2020/01/14
1.4K0
CentOS后台执行命令
查看当前有多少在后台运行的命令 jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。
码客说
2022/11/22
2.9K0
五.Linux系统进程管理
始终在后台运行并响应合法请求的程序称为守护(Daemon)进程。守护进程不是由用户启动运行的,也不与终端关联。
对弈
2019/09/04
2.7K0
五.Linux系统进程管理
CentOS后台运行、关闭、查看后台任务
& 加在一个命令的最后,可以把这个命令放到后台执行, watch -n 10 sh test.sh & #每10s在后台执行一次test.sh脚本
薛定喵君
2019/11/06
8.7K0
100个Linux命令(7)-进程管理
这是100个命令的第7篇文章,主要关于进程的管理命令以及你应该知道关于进程的基本原理,相对于命令的理解,应该更加注重对于进程本身的理解。
懒人的小脑
2019/01/16
2K0
100个Linux命令(7)-进程管理
Linux系统安全 | Linux下性能监控、守护进程与计划任务管理
程序:保存在硬盘、光盘等介质中的可执行代码和数据,静态保存的代码 进程:在cpu及内存中运行的程序代码,动态执行的代码,每个进程可以有多个子进程(线程) PID : 标识进程的唯一标识 ps:静态查看系统进程 top:动态查看系统进程 pgrep:表示查看指定服务的PID 如: pgrep httpd 查看httpd服务的PID -u 表示查看指定用户的进程信息 比如:pgrep -u named httpd 第一个参数named为named用户,第二个参数表示进程名称为 httpd ,表示查看named用户的httpd进程的PID。与 ps -aux | grep httpd 同样的作用 pstree:以树状结构显示进程的关联信息 进程后台管理 Ctrl+z 前台进程调入后台,挂起,进程并没有死,只是卡在那里 Ctrl+c 结束进程 jobs 查看后台进程 fg 3 将后台第3个进程在前台运行(不加数字时,jobs程序上为‘+’的程序优先被调回) bg 2 将后台第2个进程在后台运行(不加数字时,jobs程序上为‘+’的程序优先被调回) & 直接将进程放在后台运行 kill 向进程发送信号,不加参数时,默认发送 kill 信号 。强制杀掉进程:kill -s 9 PID 这里是 -s 9 参数的作用的传递给进程的信号是9,即强制终止,结束进程 killall 杀死同一命令的所有进程 top : 反应系统进程动态信息,默认每3秒更新一次,顶部始终显示系统当前最活跃的进程,此时还可以接受用户的键盘输入向进程发送信号等待
谢公子
2022/01/13
1.2K0
Linux系统安全 | Linux下性能监控、守护进程与计划任务管理
Linux 后台运行python .sh等程序,以及查看和关闭后台运行程序操作
直接用./sh 文件就可以运行,但是如果想后台运行,即使关闭当前的终端也可以运行的话,需要nohup命令和&命令。
学到老
2019/03/05
12.3K0
搞它!!!Linux系统中查看进程和计划任务管理
程序: 保存在 、光盘等介质中的可执行代码和数据静态保存的代码 进程: 在CPU及内存中运行的程序代码动态执行的代码
不吃小白菜
2020/09/03
2.8K0
搞它!!!Linux系统中查看进程和计划任务管理
Linux系统管理(六) 原
进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。
wuweixiang
2018/08/14
1.3K0
Linux系统管理(六)
                                                                            原
推荐阅读
相关推荐
【科研利器】进程管理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档