问题:

linux 前台进程,后台进程有什么本质的区别

虽然,很多人都说 在命令后加个&就是把该进程转到后台去,然后,前台还能做其他事情,但是,我觉得这是表面形象,其两者有什么本质区别呢?

你所谓的“后台进程”应该叫做 守护进程(daemon),init就是特殊的守护进程,PID为1。

Linux启动时vmlinux内核加载initrd.img(ram disk)作为根文件系统并开始执行其中的init来加载各种模块、服务。

常见的Linux服务也都是守护进程,比如管理系统日志的rsyslogd,数据库服务mysqld等等。

你也可以把一个运行在shell里的进程转到后台运行,比如把sar系统监控数据采集放到后台运行:

?

nohup sar -u 2 >>sar.log 2>&1 &

加入到/etc/rc.local,还可以开机自启动:

?

nohup sar -u 2 >>/var/log/sar.log 2>&1 &

nohup的用途就是让提交的命令忽略sighup信号(一个kill信号,编号为1),Terminal关闭时就发送了这个信号给sar。

结尾加上"&"将命令同时放入后台运行,如果不使用nohup仅用&,Terminal关闭时sar进程也会退出。

2>&1 表示错误重定向到标准输出,2表示stderr,1表示stdout。

其中日志归档可以使用logrotate(logrotate是一个/etc/cron.daily/任务,由cron守护进程定时执行)。

前后台进程的本质区别相关推荐

  1. 关于Debug和Release之本质区别的讨论

    一.Debug 和 Release 编译方式的本质区别     Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化 ...

  2. Interview:算法岗位面试—上海某公司算法岗位技术(偏机器学习,证券基金行业)面试考点之进程与线程区别、GD改进的算法、ROC和AUC

    Interview:算法岗位面试-上海某公司算法岗位技术(偏机器学习,证券基金行业)面试考点之进程与线程区别.GD改进的算法.ROC和AUC 导读:其实,考察的知识点,博主都做过,但是,emmm,这些 ...

  3. 关于Debug和Release之本质区别的讨论(转载)

    一.Debug 和 Release 编译方式的本质区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使得程 ...

  4. Python之进程+线程+协程(进程的本质 与 threading线程模块)

    文章目录 基本概念 threading线程模块 本篇开始分析Python中的并发程序,也就是进程.线程.协程序的使用.由于是用自己的语言总结的,因此比较大白话,或者叫通俗易懂.而且很多细节方面没有具体 ...

  5. 关于Debug和Release之本质区别(转)

    转自:http://blog.csdn.net/SummerHeart/archive/2008/07/26/2715450.aspx 关于Debug和Release之本质区别 ----------- ...

  6. 什么是vps?vps和代理ip的本质区别?

    什么是vps? vps就是虚拟专用服务器,可以在现有服务器上虚拟运行.像任何虚拟机一样是独立于其主机并作为独立实体运营的,但是无法脱离主机单独存在的.在容器或者虚拟机中,每个vps都可选配独立公网ip ...

  7. java编译release版本断言_关于Debug和Release之本质区别

    经常在 CSDN 上看见有人问 Debug 运行正常但 Release 失败的问题.以往的讨论往往是 经验性的,并没有指出会这样的真正原因是什么,要想找出真正的原因通常要凭运气.最 近我看了一些这方面 ...

  8. 到底什么是线程?线程与进程有哪些区别?

    上一篇文章我们讲述了什么是进程,进程的基本调度 http://t.csdn.cn/ybiwThttp://t.csdn.cn/ybiwT 那么本篇文章我们将了解一下什么是线程?线程与进程有哪些区别?线 ...

  9. linux 前后台进程详解

    前后台进程切换-nice 进程优先级 -free -实战 screen 后台执行命令 linux 前台进程与后台进程的区别: 进程的前台与后台运行 跟系统任务相关的几个命令: 注:实际生产环境中,都是 ...

  10. 用实例揭示notify()和notifyAll()的本质区别

    用实例揭示notify()和notifyAll()的本质区别 收藏 notify()和notifyAll()都是Object对象用于通知处在等待该对象的线程的方法.两者的最大区别在于: notifyA ...

最新文章

  1. 左室短轴切面_4声窗7切面搞定急诊超声心动图:由浅入深学TTE急诊“心”事
  2. html a标签去掉下划线_让HTML元素动起来
  3. 哈佛大学计算机与科学,Harvard的CS「哈佛大学计算机科学专业」
  4. 深入理解Java引用类型
  5. kingate是一位国人开发的代理服务器
  6. php 文件目录操作相关函数file_exists mkdir chmod touch
  7. c语言车辆管理程序,用c语言编的车辆管理
  8. loss weight
  9. FrontEnd前端文件架构
  10. 用python可以免费下载音乐吗-Python 教你轻松下载网易音乐歌曲
  11. Gut:中国药科大学周伟等团队在肠道菌群驱动风湿性关节炎机制研究和中药干预方面取得新进展...
  12. ur机器人编程-程序流程
  13. linux curl命令详解,以及实例
  14. 二维数组的传参调用写法
  15. python图像处理第七课--图像缩放、翻转、旋转、平移--小白的成长历程
  16. ssh远程连接发送命令行
  17. live555 android,live555
  18. 日历提醒软件Export Calendars Pro for Mac
  19. 计算机考研英语大纲,考研计算机大纲
  20. persona 典型用户

热门文章

  1. C++之priority_queue
  2. 奇新CMS教程(一)——在奇新CMS中添加五连幅焦点图片
  3. 应用程序中的服务器错误
  4. HTTP 应用层过滤的兼容性问题及解决方案
  5. Qt编译时报堆空间不足
  6. 需要重新启动php,win10电脑遇到问题要重新启动怎么回事
  7. unity项目对音效的优化处理
  8. 从键盘录入10个整数,统计有多少个奇数,Java基础轻松实现
  9. 平均聚类系数_聚类方法排除CPU用量误报警
  10. 华为 会议室分配时间最长_解决方案—会议室预约多入口超融合