当在前台运行某个作业时,终端被该作业占据;而在后台运行作业时,它不会占据终端。

可以使用&命令把作业放到后台执行。该命令的一般形式为:
命令 &

为什么要在后台执行命令?因为当在后台执行命令时,可以继续使用你的终端做其他事情。适合在后台运行的命令有f i n d、费时的打印作业、费时的排序及一些 s h e l l脚本。在后台运行作业时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻等。不过,作业在后台运行一样会将结果输出到屏幕上,干扰你的工作。如果放在后台运行的作业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中:
command >out.file 2>&1 &
在上面的例子中,所有的标准输出和错误输出都将被重定向到一个叫做 out.file 的文件中。当你成功地提交进程以后,就会显示出一个进程号,可以用它来监控该进程,或杀死它。

向后台提交命令现在我们运行一个f i n d命令,查找名为“s r m . c o n f”的文件,并把所有标准输出和错误输出重定向到一个叫作f i n d . d t的文件中:

find /etc –name “srm.conf” –print >find.dt 2>&1 &

[1] 27015

在上面的例子中,在我们成功提交该命令之后,系统给出了它的进程号 2 7 0 1 5。当该作业完成时,按任意键(一般是回车键)就会出现一个提示:

[1]+ Done                 find /etc “srm.conf” -print

这里还有另外一个例子,有一个叫做 p s 1的脚本,它能够截断和清除所有的日志文件,我把它放到后台去执行:

ps1  &

[2] 28535

用ps命令查看进程
当一个命令在后台执行的时候,可以用提交命令时所得到的进程号来监控它的运行。在前面的例子中,我们可以按照提交p s 1时得到的进程号,用p s命令和g r e p命令列出这个进程:

zjtst1-bg-proc%ps x| grep 48536
46131 pts/3    S+     0:00 grep 48536
48536 pts/94   Ss+    0:00 -csh

如果系统不支持ps x命令,可以用:

zjtst1-bg-proc%ps ef | grep 48536
48536 pts/94   Ss+    0:00 –csh

5878 pts/3    S+     0:00  \_ grep 48536

记住,在用p s命令列出进程时,它无法确定该进程是运行在前台还是后台。

杀死后台进程
如果想杀死后台进程可以使用 k i l l命令。当一个进程被放到后台运行时, s h e l l会给出一个 进程号,我们可以根据这个进程号,用k i l l命令杀死该进程。该命令的基本形式为:
kill -signal [process_number]
在杀进程的时候,执行下面的命令(你的进程号可能会不同)并按回车键。系统将会给出相应的信息告诉用户进程已经被杀死。

kill 48536

[1]+ Terminated                                    ps1

如果系统没有给出任何信息,告诉你进程已经被杀死,那么不妨等一会儿,也许系统正在杀该进程,如果还没有回应,就再执行另外一个 k i l l命令,这次带上一个信号选项:

kill –9 48536

[1] + Killed                                           ps1 &

如果用上述方法提交了一个后台进程,那么在退出时该进程将会被终止。为了使后台进程能够在退出后继续运行,可以使用n o h u p命令。

转载于:https://www.cnblogs.com/kevin-boy/archive/2011/08/06/2129320.html

UNIX学习笔记(七) 后台执行命令3 命令相关推荐

  1. window的dos命令学习笔记 七

    文章目录 一.dos历史学习笔记(后期整合到这里,我想能学到这里的应该不多了,嘿嘿,加油) 二.执行状态返回值(`%errorlevel%`,和shell中`$?`相似): 三.视窗 1.color ...

  2. ROS学习笔记七:使用rqt_console和roslaunch

    ROS学习笔记七:使用rqt_console和roslaunch 本节主要介绍在调试时使用的rqt_console和rqt_logger_level,以及一次性打开多个节点的工具roslaunch. ...

  3. [python教程入门学习]python学习笔记(CMD执行文件并传入参数)

    本文章向大家介绍python学习笔记(CMD执行文件并传入参数),主要包括python学习笔记(CMD执行文件并传入参数)使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋 ...

  4. Linux 学习笔记之超详细基础linux命令 Part 3

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 2----------------- ...

  5. 逆向脱壳破解分析基础学习笔记七 堆栈图(重点)

    本文为本人 大神论坛 逆向破解脱壳学习笔记之一,为本人对以往所学的回顾和总结,可能会有谬误之处,欢迎大家指出. 陆续将不断有笔记放出,希望能对想要入门的萌新有所帮助,一起进步 堆栈图 首先给定一段反汇 ...

  6. Polyworks脚本开发学习笔记(七)-完成一个自动化任务

    Polyworks脚本开发学习笔记(七)-完成一个自动化任务 利用之前的命令建立一个自动化脚本 第一步: 设置环境参数 设置注释字体避免出现不兼容中文的乱码,常用微软雅黑 #设置注释字体 VIEW A ...

  7. Typescript 学习笔记七:泛型

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  8. 吴恩达《机器学习》学习笔记七——逻辑回归(二分类)代码

    吴恩达<机器学习>学习笔记七--逻辑回归(二分类)代码 一.无正则项的逻辑回归 1.问题描述 2.导入模块 3.准备数据 4.假设函数 5.代价函数 6.梯度下降 7.拟合参数 8.用训练 ...

  9. websocket 获取连接id_Swoole学习笔记七:搭建WebSocket长连接 之 使用 USER_ID 作为身份凭证...

    Swoole学习笔记七:搭建WebSocket长连接 之 使用 USER_ID 作为身份凭证 2年前 阅读 3678 评论 0 喜欢 0 ### 0.前言 前面基本的WebSocket操作,我们基本都 ...

最新文章

  1. 【GCN】图卷积网络 Graph Convolutional Networks
  2. hibernate多对多,转换为两个一对多
  3. caffe使用过程中遇到的问题和解决办法
  4. 我为什么fuck GFW同时FUCK 开心网
  5. html打印预览出现重叠,html – 使用打印模式css打印网页时页眉和正文内容重叠...
  6. python字典初始化_python设置默认字典
  7. bzoj 4025: 二分图(可撤销并查集+CDQ分治)
  8. python datetime处理时间
  9. steam网络相关问题-社区错误代码118/无法自动登陆/短期内来自您网络的失败登录过多/无法连接至steam网络(2021/2/18更新)
  10. C++后台开发技术栈
  11. 伽罗华域(Galois Field)上的四则运算
  12. U盘格式化的不同选择——FAT32,NTFS和exFAT
  13. 快速入门github网站,了解GitHub网站的基本使用
  14. J0007. 华为手机怎么开启开发者选项
  15. 导入导出数据库或数据库表
  16. JAVA代码实现扫码购带圆图二维码生成
  17. resteasy 客户端java_java – RESTEasy客户端:重建对象
  18. 小程序开发.微信小程序.组件.视图容器
  19. 51单片机入门(一):输入输出
  20. 如何用python写一个计算日期间隔的程序?

热门文章

  1. 2021-03-01 Matlab 多项式的根求解
  2. h2 mysql 差别_h2内存数据库和mysql数据库的区别
  3. android点击事件的优先级,android中进程的优先级
  4. sublime :[Decode error - output not utf-8]
  5. 【Linux】32. shell脚本 定时删除 过时 的某类文件
  6. java多线程系列(四)---ReentrantLock的使用
  7. Java几种常见的编码方式
  8. 自己动手实现的 Spring IOC 和 AOP - 上篇
  9. JVM调优总结(4):分代垃圾回收
  10. 谁在关心toString的性能?