Linux系列(14)之工作管理
1.工作管理
说明:工作管理(job control)是用在bash环境下的,也就是说:“当我们登录系统取得bash shell之后,在单一终端机接口下同时进行多个工作的行为管理”。举例说明,我们在登录bash之后,想要一边复制文件、一边进行数据搜索、一边进行编译、还可以一边进行vim程序撰写!当然我们可以重复登录那6个命令行的终端机环境中,但是这样比较复杂,那可以在一个bash环境中完成这些操作吗?当然可以,这就需要使用到工作管理(job control)了。
1.什么是工作管理
从上述说明当中,你应该着重了解并注意的是:“进行工作管理的行为中,其实每个工作都是目前bash的子程序”。我们无法以工作管理(job control)的方式由tty1的环境去管理tty2的bash。
2.进行工作管理的限制
《1》这些工作所触发的程序必须来自你的shell的子程序(只管理自己的bash)。
《2》前景:你可以控制与下达指令的这个环境称为前景。
《3》背景:可以自行运行的工作。无法使用Ctrl+C终止这个工作,可以使用bg/fg调用该工作。
《4》背景中执行的程序不能等待终端(terminal)/shell的输入。
注意:背景里的工作状态分为“暂停(stop)”与“运行中(running)”。放入背景中运行的工作不能与用户互动,因此需要互动的工作不能放到背景中执行。
2.工作控制(job control)的管理
1.将指令放到背景中执行
在我们只有一个bash的情况下,如果想要同时进行多个工作,那么可以将某些工作放到背景中执行,让我们可以继续操作前景的工作。那么如何将工作放到背景中执行呢?最简单的方法就是将与符号“&”放在整个指令的末尾。
格式:指令 [-option] param... & //将指令执行的操作放到背景中执行
注意事项:将工作放到背景执行时注意数据流的导向,当背景工作会进行标准输出与错误输出时会影响前景工作,因此尽量将背景工作的标准输出与错误输出重定向。
下面是一个实例,在背景中将压缩文件解压到指定目录

在背景中执行某个指令后会显示改指令的工作号【1】,14432指的是该指令所触发的PID
2.将目前的工作放到背景中暂停:[Ctrl]+[Z]
在vim的一般模式中按下Ctrl+Z会将编辑文件的工作放到背景中暂停,并且屏幕中会出现 [工作号]和工作状态。
3.观察目前的背景工作的状态:jobs
指令:jobs //查看目前的背景工作状态,即包含多少个背景工作

下面实验一下:

看到输出的内容包括工作号、+/-号、背景工作运行状态(运行中或暂停中)、指令
其中“+”号的意义是这样的,如果要从当前背景工作中取出一个工作放到前景中执行,那么就涉及到会将哪个背景工作选中放到前景中了,因此当使用指令fg(不带参数)时,系统会默认将“+”标记的工作放到前景中执行。
4.将背景工作拿到前景执行:fg
fg就是foreground的缩写,通常先使用jobs指令查看有哪些背景工作,再通过fg将背景工作拿到前景中执行。
格式: fg //将有+号标记的工作放到前景执行
fg %工作号 //直接将指定的工作号的指令放到前景中执行
5.让背景工作从暂停中转变到运行中:bg
格式: bg %工作号 //改变指定的工作号的工作状态
6.管理背景中的工作:kill
kill可以使背景中的工作强制退出(杀死)、正常退出、重新启动这个工作。
格式:kill -l //列出可以使用的讯号(就是数字)
kill -signal PID //管理指定PID的程序
kill -signal %工作号 //管理指定工作号的工作
signal代表讯号,signal的值常用的有1(重新读取参数的配置文件)、2(终止程序的执行,功能类似Ctrl+C)、9(强制删除一个工作)、15(以正常的程序方式终止一项工作)
注意:当强制终止一个工作有可能会产生一些垃圾文件。kill后面接的数字默认是PID,如何想管理工作号需要这样写“%工作号”。
kill可以强制杀死一个进程(当然也能杀死服务),但是不推荐使用kill杀死服务,这样做会有弊端;可以使用systemctl来管理服务;会在Linux系列(17)之系统服务那章节详细讲解。
Linux系列(14)之工作管理的更多相关文章
- 『学了就忘』Linux系统管理 — 85、工作管理相关命令
目录 1.工作管理简介 2.如何把命令放入后台 3.后台管理命令 (1)查看后台的工作 (2)将后台暂停的工作恢复到前台执行 (3)把后台暂停的工作恢复到后台执行 4.后台命令脱离登录终端运行 1.工 ...
- Linux系统的Cache工作原理和管理机制
Linux系统Cache 管理是 Linux 内核中一个很重要并且较难理解的组成部分.本文详细介绍了 Linux 内核中文件 Cache 管理的各个方面,希望能够帮助到你. 操作系统和文件 Cache ...
- linux 学习 14 日志管理
第十四讲 日志管理 14.1 日志管理-简介 .日志服务 在CentOS .x中日志服务已经由rsyslogd取代了原先的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服 ...
- Linux中的工作管理(Job Control )
以前使用Linux老是会不小心按下Ctrl + z,然后就出现看不懂的情况,以为程序突然就没了,今天专门研究了下Linux下的几个快捷键和工作管理. 其中找到一篇很不错的文章,大部分是里面转载的. 原 ...
- Linux学习笔记(6)-工作管理
什么是工作管理 工作来自job命令的翻译,job命令可以查看后台工作的进程.举例来说什么是工作管理,当你要打包一个比较大的目录时,很耗时间,但是你同时又需要使用别的命令.你会想我可以到开几个终端进行登 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 (2 ...
- [Linux]系统管理: 进程管理(ps/top/pstree/kill/pkill), 工作管理, 系统资源查看, 系统定时任务
进程管理:查看与终止 进程查看 1. 进程是正在执行的程序或命令. 2. 进程管理的作用: 判断服务器健康状态, 查看系统中所有进程 杀死进程 3. 查看系统中所有进程 ps aux # 查看系 ...
- Linux工作管理
工作管理? 其实也就是把程序放到后台来管理,在windows中也就是最小化,在Linux中是通过命令把程序放到后台中.jobs命令查看后台程序. 对于第一点注意事项,mysql启动是例外的,要是叉掉了 ...
- Linux学习-工作管理 (job control)
什么是工作管理? 进行工作管理的行为中, 其实每个工作都是目前 bash 的 子进程,亦即彼此之间是有相关性的. 我们无法以 job control 的方式由 tty1 的环境去管理 tty2 的 b ...
随机推荐
- scrapy框架之进阶
五大核心组件 - 引擎(Scrapy) 用来处理整个系统的数据流处理, 触发事务(框架核心) - 调度器(Scheduler) 用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. ...
- JS获取div高度的方法
有时在写页面时,需要获取一个div的高度.怎么才能获取呢?哈哈,先上结论.有两种方法. offsetHeight .clientHeight getComputedStyle offsetHeight ...
- 第04组 Beta冲刺(1)
队名:斗地组 组长博客:地址 作业博客:Beta冲刺(1/4) 各组员情况 林涛(组长) 过去两天完成了哪些任务: 1.分配展示任务 2.收集各个组员的进度 3.写博客 展示GitHub当日代码/文档 ...
- fork() 成为负担,需要淘汰 spawn
A fork() in the road - Microsoft Research https://www.microsoft.com/en-us/research/publication/a-for ...
- linux内核中rtc框架选用什么接口来注册rtc设备呢?
1. 有哪些接口? 1.1 devm_rtc_device_register 1.2 devm_rtc_allocate_device和 rtc_register_device 2. 1.1与1.2 ...
- LevelListDrawable
用来管理一组Drawable的,我们可以为里面的drawable设置不同的level, 当他们绘制的时候,会根据level属性值获取对应的drawable绘制到画布上,根节点 为:<level- ...
- opencv C++ mask_rcnn
#include <fstream> #include <sstream> #include <iostream> #include <string.h> ...
- mysql多实例搭建
一)多实例安装 [root@mysqlmaster01 ~]# mkdir /data/mysql_data2[root@mysqlmaster01 ~]# mkdir /data/mysql_dat ...
- 移植Fatfs文件系统到工程中
下载Fatfs文件管理系统:http://elm-chan.org/fsw/ff/archives.html 下载最新版本 在工程中新建Fatfs文件夹,把fatfs文件中的全部复制过来 由于Fatf ...
- Go单引号和双引号区别
首先做个测试,看下面那个选项是正确的: A. str:='abc'+'123'B. str:="abc"+"123"C. str:='123'+"ab ...