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

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

nanshan 2024-10-26 11:08 11 浏览 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文件

相关推荐

使用nginx配置域名及禁止直接通过IP访问网站

前段时间刚搭建好这个网站,一直没有关注一个问题,那就是IP地址也可以访问我的网站,今天就专门研究了一下nginx配置问题,争取把这个问题研究透彻。1.nginx配置域名及禁止直接通过IP访问先来看n...

如何在 Linux 中使用 PID 号查找进程名称?

在Linux的复杂世界中,进程是系统运行的核心,每个进程都由一个唯一的「进程ID」(PID)标识。无论是系统管理员在排查失控进程,还是开发者在调试应用程序,知道如何将PID映射到对应的进程名称都是一项...

Linux服务器硬件信息查询与日常运维命令总结

1.服务器硬件信息查询1.1CPU信息查询命令功能描述示例lscpu显示CPU架构、核心数、线程数等lscpucat/proc/cpuinfo详细CPU信息(型号、缓存、频率)cat/proc/c...

Ubuntu 操作系统常用命令详解(ubuntu常用的50个命令)

UbuntuLinux是一款流行的开源操作系统,广泛应用于服务器、开发、学习等场景。命令行是Ubuntu的灵魂,也是高效、稳定管理系统的利器。本文按照各大常用领域,详细总结Ubuntu必学...

从 0 到 1:打造基于 Linux 的私有 API 网关平台

在当今微服务架构盛行的时代,API网关作为服务入口和安全屏障,其重要性日益凸显。你是否想过,不依赖商业方案,完全基于开源组件,在Linux上构建一个属于自己的私有API网关平台?今天就带你...

Nginx搭建简单直播服务器(nginx 直播服务器搭建)

前言使用Nginx+Nginx-rtmp-module在Ubuntu中搭建简单的rtmp推流直播服务器。服务器环境Ubuntu16.04相关概念RTMP:RTMP协议是RealTi...

Linux连不上网?远程卡?这篇网络管理指南你不能错过!

大家好!今天咱们聊个所有Linux用户都躲不开的“老大难”——网络管理。我猜你肯定遇到过这些崩溃时刻:新装的Linux系统连不上Wi-Fi,急得直拍桌子;远程服务器SSH连不上,提示“Connecti...

7天从0到上线!手把手教你用Python Flask打造爆款Web服务

一、为什么全网开发者都在疯学Flask?在当今Web开发的战场,Flask就像一把“瑞士军刀”——轻量级架构让新手3天速成,灵活扩展能力又能支撑百万级用户项目!对比Django的“重型装甲”,Flas...

nginx配置文件详解(nginx反向代理配置详解)

Nginx是一个强大的免费开源的HTTP服务器和反向代理服务器。在Web开发项目中,nginx常用作为静态文件服务器处理静态文件,并负责将动态请求转发至应用服务器(如Django,Flask,et...

30 分钟搞定 Docker 安装与 Nginx 部署,轻松搭建高效 Web 服务

在云计算时代,利用容器技术快速部署应用已成为开发者必备技能。本文将手把手教你在阿里云轻量应用服务器上,通过Docker高效部署Nginx并发布静态网站,全程可视化操作,新手也能轻松上手!一、准...

Nginx 配置实战:从摸鱼到部署,手把手教你搞定生产级配置

各位摸鱼搭子们!今天咱不聊代码里的NullPointerException,改聊点「摸鱼必备生存技能」——Nginx配置!先灵魂拷问一下:写了一堆接口却不会部署?服务器被恶意请求打崩过?静态资源加载...

如何使用 Daphne + Nginx + supervisor部署 Django

前言:从Django3.0开始支持ASGI应用程序运行,使Django完全具有异步功能。Django目前已经更新到5.0,对异步支持也越来越好。但是,异步功能将仅对在ASGI下运行的应用程序可用...

Docker命令最全详解(39个最常用命令)

Docker是云原生的核心,也是大厂的必备技能,下面我就全面来详解Docker核心命令@mikechen本文作者:陈睿|mikechen文章来源:mikechen.cc一、Docker基本命令doc...

ubuntu中如何查看是否已经安装了nginx

在Ubuntu系统中,可以通过以下几种方法检查是否已安装Nginx:方法1:使用dpkg命令(适用于Debian/Ubuntu)bashdpkg-l|grepnginx输出...

OVN 概念与实践(德育概念的泛化在理论和实践中有什么弊端?)

今天我们来讲解OVN的概念和基础实践,要理解本篇博客的内容,需要前置学习:Linux网络设备-Bridge&VethPairLinux网络设备-Bridge详解OVS+Fa...

取消回复欢迎 发表评论: