百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

第十章 进程介绍(续二)(进程小说)

nanshan 2024-10-26 11:08 10 浏览 0 评论

10.12 列出后台的工作jobs

进程这一概念是对系统而言,对每一个控制台,我们则称为job(工作)。与进程有进程号一样,使用kill、renice等指令操作进程使用进程号,使用fg、bg指令操作job使用工作号。

1.jobs命令:用于列出系统当前的后台进程

2.在中括号中是工作号,用于去杀死他们或把他们拉回前台(fg)

3.引用工作号使用%号

4.浏览你的工作:

Jobs命令也报告暂停的和后台的进程状态。此工作ID报告可用于其他的命令去管理此进程。

$ jobs

[1]+ Stopped man bash

[2]- Runing find / -name joe > outpot 2 >& &

10.13 恢复暂停的工作

1.当一个命令被暂停或被放到后台时,它能被用fg命令拉回到前台

2.语法:

fg [job_number]%

3. 在后台中恢复工作

当一个耗时的进程在前台被启动时,使用一个<ctrl-z>和bg组合是很有用的。

举例说明,以下的顺序将把前台的find进程放到后台:

$ find / -name “*·px” 2 > /dev / null >ps.out

^z

$ bg %1 (工作号)

$ jobs 查看后台工作号

$ fg “1” 把1号工作放到前台

%1在shell中引用工作ID。如果在同一个shell中有另一个工作正在运行,此工作ID号可以变更。如果怀疑,使用jobs去验证工作号。

对于job我们也可以通过kill [-singnal]% job ID来控制。

例:

$ kill %1 杀死后台运行的1号程序

10.14 使用nohup

1.使用nohup去启动一个后台进程,此进程在控制台退出或终端关闭后仍然继续

$nohup tar -cvf source.tar /opt/src &

$exit

2. 默认的,从nohup输出的工作写到文件nohup.out

3.运行后台进程

nohup command运行此给定的命令忽略挂断信号,以便此命令能在你退出(或者关闭X终端窗口)后能够继续在后台运行。

nohup通过5提升command的调度权限。如果标准输出是一个终端,它和标准出错被重定向以便他们被应用到文件nohup.out;如果不能被写到此文件,他们被应用到文件$HOME/nohup.out。如果不能被写到此文件,此命令不运行。

单独使用nbhup没有任何意义,系统不会自动添加&,把进程变为后台进程。

有些指令如wgets,本身有参数可代替nohup

10.15 复合命令

复合命令就是使命令在同一行运行。

1.在命令的尾部用分号“;”将命令列表分开

用于在一行内分隔两个独立的命令,表示一行已结束,作用相当于回车键。

pwd;ls -l

2.子shell激活 — ()小括号

在小括号内的命令行表示激活一个子shell后并在子shell中运行。

(HOME=/usr/share)echo $ HOME

$(cd /usr; du) &

3. 复合命令举例说明

⑴ 假如你想保留一个计算机用户登录的次数连同日期和时间保存为一日志文件。这有两个命令能达到目的:

$ date >> logfile

$ who | wc -l >> logfile

⑵ 上面的命令顺序需要你输入两个命令行,追加到logfile文件两次。一般的键入大量的命令是必要的。当写到终端的时候,这项艰苦的工作能被简化,通过在同一行上用分号(;)将命令分开进行命令组合简化。

$ date ;who | wc -l

但是如果您企图将标准输出重定向,这将导致不能工作。

$ date ;who | wc -l >> logfile

⑶ 如果想两个命令都运行,但只有第二个命令结果重定向输出到logfile文件,可以在一个子shell组将联合这些命令。因此他们将被在一个单位里处理。当一个命令组被放置在小括号里的时,一个新的子shell被激活,并且输出能被重定向,如同它是一个命令。

$(date ;who | wc -l ) >> logfile

10.16 本单元重要文件和命令

1.重要命令

kill

killall

bg

fg

nice

renice

ps

top

gnome-system-monitor

10.17 进程控制试验

估计时间: 30分钟

目标: 练习与进程控制有关的不同命令

试验的起点: 安装Red Hat Linux,并且能正常工作,有一个用户名和密码都为student的用户。

1.进程控制

场景描述:

在这个任务中,大家会启用几个进程,然后使用bash的进程控制方法来控制它们。你将会在几个控制台间切换,注意你在哪个控制台上运行命令。

任务:

⑴ 开始使用student用户在第一、二个控制台(tty1、tty2)上登录。

⑵ 到tty1上,然后运行以下命令:

$ (while true; do echo –n A >> log; sleep 1;done)

⑶ 注意这个控制台现在因为在运行你的进程,所以处于忙的状态(进程在前台运行),这个进程不断把字母“A”添加进~/log文件中去,到tty2上运行以下命令:

$ tail -f log

你会看到“A”不断增长

⑷ 切换回控制台tty1,按下<ctrl-z>,shell会告诉你进程停止了,告诉你job号码为1,切换回控制台2,你会看到文件不变了。

⑸ 回到tty1,再次启动进程,运行jobs会显示job[1]在运行了,到tty2上看到文件继续增长了:

$ bg

$ jobs

⑹ 到tty1上,按向上的箭头,重新找回第二步时的命令,把A换成B,在最后加上&,然后在把B换成C:

$ (while true; do echo –n B >> log; sleep 1;done)

$ ^B^C

⑺ 输入jobs确认三个进程都在运行,到tty2上看到每秒钟会有三个字母增长。

⑻ 在第4步你按ctrl-z时,实际上是给进程发一个信号,使用kill命令也可以给它们发信号,使用kill来显示信号列表和标号,然后发一个SIGSTOP(19)的信号给job[1],到tty1上执行:

$ kill –l

$ kill -19 %1

⑼ 输入jobs,确认job[1]停止,到tty2上看结果是否停止。

⑽ 用kill重新启动进程,使用SIGCONT(18)信号,你会看到进程又重新启动了。(参考第8步的实现方法)

⑾ 使用kill命令的SIGTERM(15)信号,也是kill的默认信号,来结束三个进程,先结束job[2]和job[3]时,用jobs来看一下它们的状态是不是terminated的:

$ kill %2 %3

$ jobs

⑿ 结束最后的进程:

$ fg

$ <ctrl-c>

⒀ 在tty1上使用jobs命令来看一下,然后在tty2上看是否进程真的结束了,然后按【ctrl-c】结束tail进程,注销。

⒁ 在tty1上删除 ~/log文件

相关推荐

Linux/Unix 系统中非常常用的命令

Linux/Unix系统中非常常用的命令,它们是进行文件操作、文本处理、权限管理等任务的基础。下面是对这些命令的简要说明:**文件操作类:*****`ls`(list):**列出目录内容,显...

教你如何在Linux中删除分区(CLI篇)

文接上篇,继续以Ubuntu系统为例。删除分区前,急得重要数据备份!备份!备份用命令操作分区,用的最多的莫过于fdisk了,几乎所有的Linux发行版都默认带有fdisk。首先要知道的是,你想删除的分...

敲完就让你提桶跑路的Linux命令(敲完就让你提桶跑路的linux命令是什么)

不谨慎可能就会让你提桶的Linux命令!!!删除文件rm-rf该命令是删除文件或文件夹等最快的方式之一。删除后的内容很难恢复,如果删除系统文件可能会导致系统崩坏。>rm-rf/#强制...

Log文件可以删除吗(taxukeylog文件可以删除吗)

Log文件(日志文件)是否可以删除取决于具体场景和文件类型。以下是详细分析和建议:一、哪些Log文件可以删除?非关键应用日志用户级应用日志:如浏览器缓存日志、游戏临时日志等,通常不影响系统运行,可定期...

Linux 删除空目录(linux直接删除目录)

rmdir命令用来删除空目录。当目录不再被使用时,或者磁盘空间已到达使用限定值,就需要删除失去使用价值的目录。利用rmdir命令可以从一个目录中删除一个或多个空的子目录。该命令从一个目录中删除一个或...

在 Windows 11 或 10 上删除、创建和格式化分区

在Windows11或10上删除、创建和格式化分区假设您的现有电脑使用的是传统硬盘,但现在您想再添加一个硬盘或SSD。当然,后者将用于启动操作系统,而前者将作为纯数据存储。在成功将操作系统...

如何使用 Apt Clean 命令清除 APT 缓存?

APT(AdvancedPackageTool)是Debian系Linux发行版的包管理工具,用于处理软件包的安装、升级和依赖管理。在使用apt命令(如aptinstall、apt...

Linux 磁盘空间不够用?5 招快速清理文件,释放 10GB 空间不是梦!

刚收到服务器警告:磁盘空间不足90%!装软件提示Nospaceleftondevice!连日志都写不进去,系统卡到崩溃?别慌!今天教你5个超实用的磁盘清理大招,从临时文件到无用软件一键搞定...

Linux清空日志方法(linux怎么清理日志)

方法1:使用>重定向>/path/to/logfile或(需要权限时):sudosh-c'>/var/log/logfile'方法2:使用trun...

如何在Eclipse中搭建Zabbix源码的调试和开发环境

Zabbix是一款非常优秀的企业级软件,被设计用于对数万台服务器、虚拟机和网络设备的数百万个监控项进行实时监控。Zabbix是开放源码和免费的,这就意味着当出现bug时,我们可以很方便地通过调试源码来...

Linux操作系统之常用命令(linux操作系统之常用命令有哪些)

Linux操作系统一、常用命令1.系统(1)系统信息arch显示机器的处理器架构uname-m显示机器的处理器架构uname-r显示正在使用的内核版本dmidecode-q显示硬件系...

理解linux内核的vmlinuz和initrd(linux内核原理及分析)

Originaladdress:http://www.chenjunlu.com/2010/11/understanding-of-vmlinuz-initrd-and-system-map/1....

Linux纯干货知识总结|面试专用(linux面试宝典)

学习Linux的重要性相信不用我多说大家也明白,以下是小编总结的常用Linux基础知识以及面试常问的Linux命令,希望能帮助大家更规范地理解和使用~绝对路径和相对路径绝对路径以正斜杠开始完整的文件的...

Linux基础知识之启动流程分析(简述linux启动流程)

Linux系统启动原理:1.poweron开机。2.开机自检:电脑开机后首先加载BIOS(BasicInput/OutputSystem基本输入输出系统)。BIOS程序首先检查计算机能否满足运...

Java程序员必备——Linux的面试常见问题及面试题!你知道多少?

一.常用命令1.编辑相关①.awkNF:字段总数NR:第几行数据FS:分隔字符②.sed-n-i直接修改4a:在第四行后添加4i:在第四行前插入1,5csting:用sting替换1到5行...

取消回复欢迎 发表评论: