博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bash 作业控制
阅读量:2242 次
发布时间:2019-05-09

本文共 1362 字,大约阅读时间需要 4 分钟。

作业控制是指以选择性地停止(暂停)的进程的执行和继续的能力(恢复)在稍后的点其执行。用户通常通过由操作系统内核的终端驱动和bash共同提供一个交互式接口使用这个设施。

shell与相关联的每个管道的工作。它保持当前正在执行的任务,这可与作业命令中列出的表。当bash异步启动工作(在后台),它打印一条线,看起来像:

[1] 25647
表明这个工作是作业号1,而且在与该作业相关联的管道的最后一个进程的进程ID是25647.全部在单一管道中的过程是相同的作业的成员。 Bash使用作业抽象,作业控制的基础。

为了方便用户界面的作业控制的执行,操作系统维护当前终端进程组ID的概念。这个过程组的成员(其进程组ID等于当前终端进程组ID)收到键盘产生的信号,例如SIGINT。这些方法被认为是在前台。后台进程是那些进程组ID与终端的不同;这样的过程是免疫的键盘产生的信号。仅前台进程被允许从读或,如果用户如此用的stty指定TOSTOP,写入到终端。它尝试从读(写的时候stty的TOSTOP生效)终端被ker的NEL的终端驱动,其中,除非抓到,暂停进程发送一个SIGTTIN(SIGTTOU)信号后台进程。

如果其中的bash运行的操作系统支持作业控制,bash会包含设施使用它。键入挂起字符(通常是^ Z,按Ctrl-Z),而一个进程正在运行导致该进程被停止,并控制返回抨击。键入延迟挂起字符(通常是^ Y,控制-Y)导致当它试图从终端读取输入要停止的过程,要返回控制打坏。然后,用户可以操纵这个作业的状态,使用bg命令,继续它在后台运行,fg命令继续它在前台,或kill命令来杀死它。一个^ Z立即生效,并且具有使待处理的输入和预输入要被丢弃的附加副作用。有多种方式来指代一个作业在shell。字符%引入工作规范(作业规范)。

例如,%CE指的是停止CE作业。如果前缀多个作业相匹配,bash报错。使用%?CE,另一方面,是指包含字符串是在其命令行任何作业。如果子多个作业相匹配,bash报错。符号%%和%+指的是当前工作的shell的概念,这是最后一个作业停止,而这是在前台或后台启动。在以前的工作可以用%来引用 - 。如果只有一个单一的作业,%+和% - 都可以用来指该作业。

在有关的工作(例如,作业命令的输出)输出,当前作业总是与+标记,并且以前的工作与 - 。单个%(没有附带工作规范),也指当前作业。

简单地命名工作可以用来把它放到前台:%1是代名词fg %1,从后台到前台的工作带来1。同样,%1&''恢复作业1的背景下,相当于BG%1’。

shell学会立即每当作业改变状态。通常情况下,bash的等待,直到它是关于报告在一个作业站土族的变化,从而不会中断任何其它输出之前打印一个提示。如果-b被设置内建命令使能,bash立即报告这些变化。对SIGCHLD任何陷阱为每个子进程退出执行。

如果在作业停止(或者,如果checkjobs外壳选项已经使用内建命令shopt,运行启用),外壳印一条警告消息,并且,如果checkjobs选项启用由退出bash的一种尝试,列出工作和他们的状态。jobs命令可被用来检查自己的状态。如果退出第二次尝试时中间没有作出命令,shell不会打印其他警告,作业将终止任何停止。

转载地址:http://inwdb.baihongyu.com/

你可能感兴趣的文章
Java集合详解2:一文读懂Queue和LinkedList
查看>>
Java集合详解3:一文读懂Iterator,fail-fast机制与比较器
查看>>
Java集合详解4:一文读懂HashMap和HashTable的区别以及常见面试题
查看>>
Java集合详解5:深入理解LinkedHashMap和LRU缓存
查看>>
Java集合详解6:这次,从头到尾带你解读Java中的红黑树
查看>>
Java集合详解8:Java集合类细节精讲,细节决定成败
查看>>
Java并发指南2:深入理解Java内存模型JMM
查看>>
Java并发指南5:JMM中的final关键字解析
查看>>
Java并发指南6:Java内存模型JMM总结
查看>>
Java并发指南7:JUC的核心类AQS详解
查看>>
Java并发指南8:AQS中的公平锁与非公平锁,Condtion
查看>>
Java网络编程和NIO详解6:Linux epoll实现原理详解
查看>>
Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理
查看>>
Java网络编程与NIO详解8:浅析mmap和Direct Buffer
查看>>
Java网络编程与NIO详解10:深度解读Tomcat中的NIO模型
查看>>
Java网络编程与NIO详解11:Tomcat中的Connector源码分析(NIO)
查看>>
深入理解JVM虚拟机1:JVM内存的结构与消失的永久代
查看>>
深入理解JVM虚拟机3:垃圾回收器详解
查看>>
深入理解JVM虚拟机4:Java class介绍与解析实践
查看>>
深入理解JVM虚拟机5:虚拟机字节码执行引擎
查看>>