当我们在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件。对于密集访问磁盘的进程,我们更希望它能够在每天的非负荷高峰时间段运行(例如凌晨)。为了使这些进程能够在后台运行,也就是说不在终端屏幕上运行,有几种选择方法可供使用。

  • &
    当在前台运行某个作业时,终端被该作业占据;可以在命令后面加上& 实现后台运行。例如:sh test.sh &
    适合在后台运行的命令有f i n d、费时的排序及一些s h e l l脚本。在后台运行作业时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻等。不过,作业在后台运行一样会将结果输出到屏幕上,干扰你的工作。如果放在后台运行的作业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中:
command  >  out.file  2>&1  & 

这样,所有的标准输出和错误输出都将被重定向到一个叫做out.file 的文件中。

PS:当你成功地提交进程以后,就会显示出一个进程号,可以用它来监控该进程,或杀死它。(ps -ef | grep 进程号 或者 kill -9 进程号)

  • nohup
    使用&命令后,作业被提交到后台运行,当前控制台没有被占用,但是一但把当前控制台关掉(退出帐户时),作业就会停止运行。nohup命令可以在你退出帐户之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。该命令的一般形式为:
nohup command &

如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:

nohup command > myout.file 2>&1 &

使用了nohup之后,很多人就这样不管了,其实这样有可能在当前账户非正常退出或者结束的时候,命令还是自己结束了。所以在使用nohup命令后台运行命令之后,需要使用exit正常退出当前账户,这样才能保证命令一直在后台运行。

  • ctrl + z
    可以将一个正在前台执行的命令放到后台,并且处于暂停状态。

  • Ctrl+c
    终止前台命令。

  • jobs
    查看当前有多少在后台运行的命令。
    jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。

  • 2>&1解析
command >out.file 2>&1 &
  1. command>out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。
  2. 2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。最后一个&, 是让该命令在后台执行。
  3. 试想2>1代表什么,2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出.

linux后台执行命令:和nohup相关推荐

  1. Linux后台执行命令

    2019独角兽企业重金招聘Python工程师标准>>> Linux 后台执行命令 ###摘要:### 当你在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更 ...

  2. linux后台执行命令:amp;与nohup的用法

    点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 大家可能有这样的体验:某个程序运行的时候,会产生大量的log,但实际上我们只想让它跑一下而已, ...

  3. linux 命令 抛后台,Linux 后台执行命令

    场景 python 代码,打印1~3000,每秒打印一次 ## file_name: test.py import time i = 0 while 1: time.sleep(1) i = i + ...

  4. linux+后台运行+nohup,Linux后台运行命令集(、fg、bg、jobs、nohup、ctrl + z)

    Linux后台运行命令集(&.fg.bg.jobs.nohup.ctrl + z) 1).& 命令或进程最后加上"&",可以把此操作放到后台执行: 2).c ...

  5. nohup ——Linux后台运行命令

    在 Linux 终端上执行命令的通常风格是简单地运行它并等待它正常退出,命令退出后,可以继续连续执行其他命令,这就是所谓的在前台运行命令.正如这个词所暗示的那样,您可以在终端上直观地看到命令的输出. ...

  6. linux后台运行符号、nohup命令、输出重定向等使用方法

    linux后台运行&符号.nohup命令.输出重定向等使用方法 https://blog.csdn.net/zjc/article/details/51484114 在命令最后加上&符 ...

  7. linux后台运行命令,nohup

    linux后台运行命令 1.& 当结束终端时,进程就会停止 command & 例子: ./test.sh & 2.nohup 为不挂起进程的意思 如下时会使得应用在关闭终端时 ...

  8. inux 后台执行命令

    为什么80%的码农都做不了架构师?>>>    1.cron 系统调度进程.是SHELL一个LUNX下的定时执行工具,在无需人工干预下进行作业. $/sbin/service cro ...

  9. linux后台运行命令总结

    linux后台运行命令总结 问题: 我们有时候需要登录远程服务器跑运行时间非常长的脚本,这个时候你要让脚本后台运行,不然占着终端窗口看着不舒服.但万一网络不好,(比如我这儿的破校园网,高峰时几秒钟断一 ...

最新文章

  1. 【C++】Google C++编码规范(三):智能指针
  2. node mysql 连接池 超时,关于NodeJS中mysql连接池卡死问题
  3. java8 stream中的惰性求值
  4. PAT甲级1111 Online Map (30分):[C++题解]两次dijkstra求单源最短路、保存路径、长度最短、时间最短
  5. ES6一些新特性记录
  6. STM32 之五 Core Coupled Memory(CCM)内存
  7. pdf页眉页脚设置步骤
  8. python爬虫技术作用_大数据爬虫技术有什么功能
  9. win10系统如何设置局域网服务器地址,Win10怎么设置局域网IP地址
  10. js将月份转换为英文简写的形式
  11. 如何用python群发工资条
  12. 2022联想小新pro14和联想小新pro16 区别 哪个好
  13. GPT-3、Stable Diffusion一起助攻,让模型听懂甲方修图需求
  14. 004/160 CrackMe ajj CKme
  15. Redis为什么这么快?
  16. 15 三极管主要参数
  17. 政务大数据云平台架构方案(ppt)
  18. .NET Core 和 ASP.NET 5 RC1 发布
  19. 计算机网络课题目,计算机网络课程学论文选题 计算机网络课程论文题目怎么取...
  20. 【数学建模笔记 20】数学建模的偏微分方程的数值解

热门文章

  1. ( 转)WPF面板布局介绍Grid、StackPanel、DockPanel、WrapPanel
  2. 使用Prometheus监控服务器性能
  3. 烟花计算机谱子,烟火陈翔简谱
  4. Tensorflow实战(三)——验证码识别(一)
  5. koa 设置cache_node koa2 ssr项目搭建的方法步骤
  6. Flink Broadcast State实用指南
  7. 史上最全的画册制作流程—DIY设计工具
  8. pages validateRequest=false/在.net4.0中无效的问题
  9. 联发科十核大杀器现身:跑分优于麒麟950
  10. SFU架构的云视频会议系统如何取代硬件视频会议系统,成为5G时代的视频会议新宠?