作业控制是bash Shell提供的一项强大功能,它允许你选择在前台还是后台运行程序,即作业。

1、开启bash的作业控制功能

#set -o monitor

#set -m

2、显示在后台运行的作业

#jobs
[1]- 运行中 gedit &
[2]+ 运行中 sleep 1000 &
+代表最后放到后台运行的作业
-代表倒数第二个放到后台运行的作业

#jobs -l                      //会显示PID
[1]- 3403 运行中 gedit &
[2]+ 3408 运行中 sleep 1000 &

#jobs %%               //显示在作业表中最近执行的命令
[2]+ 运行中 sleep 1000 &

#jobs -r                    //列出所有正在运行的作业

#jobs -s                     //列出所有挂起(暂停执行)的作业

3、作业控制:fg和bg命令

# gedit &                  //将作业丢到后台执行
[1] 15465

#fg %1                       //将作业放到前台执行
gedit

^Z //将前台作业送后台,并挂起(暂停执行),显示提示符

#bg %1                          //启动后台停止的作业1

#kill %1                        //杀掉作业1
#kill -9 %1                   //强制杀掉作业1
kill常用信号:
-1 :重新读取一次参数的配置文件 (类似 reload);
-2 :代表和由键盘输入 [ctrl]-c 同样的动作;
-9 :立刻强制删除一个工作;
-15:以正常的程序方式终止一顷工作。与-9 是不一样的。

#disown %1                    //将作业1从从作业表中移除,shell不会将其识别为可用的作业(成为一个正常的进程,ps能查看)

4、终端后台和系统后台

在终端模式下,通过& 或 ^Z放到后台的作业都是放到终端的后台,而不是系统后台。当后台任务未执行完,而终端退出时(exit),终端后台的任务会终止。
系统后台的任务则不会随着终端的退出而终止,与终端无关。
可以通过at命令或nohup命令将作业放到系统后台执行,当退出终端或注销系统后,程序还能够工作继续运行。
通过nohup运行的程序的输出,都重定向到~/nohup.out文件中。
nohup不支持Bash内建命令,只支持外部程序。

#nohup cmd
#nohup cmd &

=-=-=-=-=
Powered by Blogilo

Bash的作业控制的更多相关文章

  1. 7.bash作业控制

    7.作业控制本节讨论作业控制是什么.它怎么工作.以及 Bash 里面怎么使用这些功能7.1 作业控制基础作业控制是指有选择的停止(暂停)并在后来继续(恢复)执行某个进程的能力.通常,用户通过 Bash ...

  2. 【CentOS】学习Bash

    一.特性 命令历史  history , !! , !$ , !字符 , !n (n为第几条命令) Tab可以补全文件路径或者命令 alias a="b",  unalias a ...

  3. 常见linux命令释义(第四天)——bash部分

    学linux的时候,我跳过了一些很重要的东西.比如分区.还有vim的深入学习.分区没有学习是因为我装的是虚拟机,不知道是什么原因,格式化分区不能正常显示.至于vim,简单的增删改查我已经了解了.能够顺 ...

  4. 跟着鸟哥学Linux系列笔记3-第11章BASH学习

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 跟着鸟哥学Linux系列笔记2-第10章VIM学习 认识与学习bash 1. ...

  5. 终端&作业控制&会话启动过程

    进程组 每个进程除了有个进程id外,还属于一个进程组.进程组是一个或者多个进程的集合.通常他们与同一个作业相关联,可以接受来自同一终端的信号.进程组id等于其进程组长id.进程组的终止与进程组长是否存 ...

  6. bash内部命令-1

    外置命令 date expr seq nohup tput bash内置命令 trap set shopt date Linux时钟分为系统时钟(System Clock)和硬件(Real Time ...

  7. 第四章:更多的bash shell命令

    第四章:更多的bash shell命令 监测程序 ps (其他ps内容见#1 ) Unix风格的ps命令参数 参数 描述 -A 显示所有进程 -N 显示与指定参数不符的所有进程 -a 显示除控制进程( ...

  8. Linux基本操作 9----- 认识与学习bash

    一 认识bash这个shell 1 管理整个计算机硬件的其实就是操作系统的内核,这个内核是需要被保护的,所以我们一般用户就只能通过shell来跟内核通信,以让内核达到我们所想打到的工作. 2 只要能够 ...

  9. Linux学习之路:认识shell和bash

    一.shell  计算机硬件的直接控制者是操作系统的内核(kernel),因为内核的重要性,所以作为用户的我们是无法直接操作内核的,所以我们需要shell调用应用程序或者双击打开安装的应用软件与内核之 ...

随机推荐

  1. CentOS_5.6下使用cmake编译MySQL_5.5.11教程

    注:资料来自网络    Centos 5.6编译安装mysql 5.5.11 2011年06月24日 星期五 05:33 MySQL 最新的版本5.5.11需要cmake编译安装,估计以后的版本也会采 ...

  2. javascript原生方法实现extend

    var extend = (function () { for(var p in {toString:null}){ //检查当前浏览器是否支持forin循环去遍历出一个不可枚举的属性,比如toStr ...

  3. ASP.Net MVC连接MySQL和Code First的使用

    首先要准备一下的工具作为环境 MySQL Community Server 5.7.x My Workbench 6.3 VS2017 新建一个项目,NetMySQLCodeFirst 选择MVC,再 ...

  4. java集合系列—ArrayList

    ArrayList是工作以来使用频率最高的集合类.以前上课老师说不知道用什么集合类就用ArrayList,好吧,后面就这样了. public class ArrayList<E> exte ...

  5. Java 程序员快速上手 Kotlin 11 招

    欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 作者:霍丙乾 近经常会收到一些 "用 Kotlin 怎么写" 的问题,作为有经验的程序员, ...

  6. SpringMVC中的java.lang.ClassNotFoundException: org.aspectj.weaver.BCException 调试过程记录

    报错原因 上文本描述 java.lang.NoClassDefFoundError: org/aspectj/weaver/BCException at java.lang.Class.getDecl ...

  7. 抱歉,您必须拥有一个终端来执行 sudo

    Linux ssh执行远端服务器sudo命令时有如下报错: sudo: sorry, you must have a tty to run sudo sudo:抱歉,您必须拥有一个终端来执行 sudo ...

  8. DATA VISUALIZATION – PART 2

    A Quick Overview of the ggplot2 Package in R While it will be important to focus on theory, I want t ...

  9. cas4.2以下取消https

    deployerConfigContext.xml增加参数p:requireSecure="false" <bean class="org.jasig.cas.au ...

  10. PHP实现记录日志(文件)

    PHP实现记录日志(文件) php php 记录日志 项目中经常会记录些操作信息,或是打印些关键变量,或者是导入excel文件,提现记录,都需记录.经常遇到,封装一个方法,有不好的地方或补充请留言. ...