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)之工作管理的更多相关文章

  1. 『学了就忘』Linux系统管理 — 85、工作管理相关命令

    目录 1.工作管理简介 2.如何把命令放入后台 3.后台管理命令 (1)查看后台的工作 (2)将后台暂停的工作恢复到前台执行 (3)把后台暂停的工作恢复到后台执行 4.后台命令脱离登录终端运行 1.工 ...

  2. Linux系统的Cache工作原理和管理机制

    Linux系统Cache 管理是 Linux 内核中一个很重要并且较难理解的组成部分.本文详细介绍了 Linux 内核中文件 Cache 管理的各个方面,希望能够帮助到你. 操作系统和文件 Cache ...

  3. linux 学习 14 日志管理

    第十四讲 日志管理 14.1 日志管理-简介 .日志服务 在CentOS .x中日志服务已经由rsyslogd取代了原先的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服 ...

  4. Linux中的工作管理(Job Control )

    以前使用Linux老是会不小心按下Ctrl + z,然后就出现看不懂的情况,以为程序突然就没了,今天专门研究了下Linux下的几个快捷键和工作管理. 其中找到一篇很不错的文章,大部分是里面转载的. 原 ...

  5. Linux学习笔记(6)-工作管理

    什么是工作管理 工作来自job命令的翻译,job命令可以查看后台工作的进程.举例来说什么是工作管理,当你要打包一个比较大的目录时,很耗时间,但是你同时又需要使用别的命令.你会想我可以到开几个终端进行登 ...

  6. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建    ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2 ...

  7. [Linux]系统管理: 进程管理(ps/top/pstree/kill/pkill), 工作管理, 系统资源查看, 系统定时任务

    进程管理:查看与终止 进程查看 1. 进程是正在执行的程序或命令. 2. 进程管理的作用: 判断服务器健康状态, 查看系统中所有进程 杀死进程 3. 查看系统中所有进程 ps aux    # 查看系 ...

  8. Linux工作管理

    工作管理? 其实也就是把程序放到后台来管理,在windows中也就是最小化,在Linux中是通过命令把程序放到后台中.jobs命令查看后台程序. 对于第一点注意事项,mysql启动是例外的,要是叉掉了 ...

  9. Linux学习-工作管理 (job control)

    什么是工作管理? 进行工作管理的行为中, 其实每个工作都是目前 bash 的 子进程,亦即彼此之间是有相关性的. 我们无法以 job control 的方式由 tty1 的环境去管理 tty2 的 b ...

随机推荐

  1. 【poj2431】驾驶问题-贪心,优先队列

    Expedition Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 29360   Accepted: 8135 Descr ...

  2. 下载、配置全新的eclipse

    1.https://www.eclipse.org/downloads/ 2.确保安装配置了JDK,打开eclipse-inst-win64.exe,让eclipse installer程序UPDAT ...

  3. expdp / impdp 用法详解 ,和exp / imp 的区别

    一  关于expdp和impdp     使用EXPDP和IMPDP时应该注意的事项:EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用.EXPDP和IMPDP是服务端的工具程 ...

  4. jvm方法栈

    调用栈 先入后出 栈是一个只有一个口的容器,先进入栈的会落到栈底,出栈的时候最后出.最后进入栈的,在栈顶,出栈时先出. 方法调用时,需要在内存中开辟一块存储空间做为线程栈空间 每个线程都由自己的栈 调 ...

  5. Windows10 64位安装DB2数据库

    安装前准备 : 系统:Windows10 64位 DB2 v9.5下载地址(迅雷):http://big3.ddooo.com/db2_93661.rar 选择安装包解压位置,并复制记住: 去到解压的 ...

  6. spring 使用@Valid校验数据出错DEBUG org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod - Failed to resolve argument 0 of type

    问题原因:在 @Valid 的那个参数后面紧跟着一个 BindingResult 的参数(一定要紧跟着) 参考来源:https://segmentfault.com/q/101000000838468 ...

  7. 灵活配置tomcat根目录网站

    <Host name="localhost" appBase="webapps" unpackWARs="true" autoDepl ...

  8. 将ByteBuffer保存成文件

    String dest = "d:/download/" + name; Path path = Paths.get(dest).getParent().toAbsolutePat ...

  9. php-fpm 优化

    /usr/local/php/etc/php-fpm.conf 优化 [global] pid = /usr/local/php/var/run/php-fpm.pid error_log = /us ...

  10. pod install报错 [!] Error installing......

    今天pod install出现这个错误: 解决办法: 多试几次就好了,也不知道之前几次都失败.....希望知道的可以留言告诉我哟!!!