1、创建守护进程(Deamon)

  守护进程的概念与作用

  后台服务程序 – 系统服务,进程名字往往以’d’结尾,生存周期比较长(系统装入时启动,关闭时候终止。系统装入两种启动方式:1从启动脚本、etc/rc.d中启动;2由作业规划进程crond启动。也可以从用户终端启动,且独立于控制终端),周期性执行某种任务或等待处理某些发生的事件。
  例如:httpd ftpd lqd crond
  
  

  控制终端:从一个终端开始运行的进程都会依附于这个终端,这个终端就称为这些进程的控制终端。当控制终端关闭,依附于该终端的进程都会自动关闭;守护进程除外,避免不必要的干扰和交互。

  守护进程创建过程

  1.让init进程成为新产生进程的父进程
   让进程在后台执行
   创建子进程,父进程退出(所有的工作都在子进程中执行,子进程为孤儿进程)
   

pid=fork();
if(pid>0) exit(0);

   进程组(作业控制)

   在Linux系统中,所有的进程都属于各自的进程组;进程组是一个或多个进程的集合;每个进程组都有进程组Id,由领头进程的进程号决定;进程组的存在与否与领头进程是否存在没有关系。

   子进程一旦运行exec就会不再属于原来的进程组。

   会话(控制终端)

   一个或多个进程组的集合;一个登陆shell发起的会话,一般由一个会话首进程、一个前台进程组、多个后台进程组组成。

   会话首进程:新建会话时,会话中的唯一进程,其PID=SID;它通常是一个登陆shell;进程成为孤儿进程后调用setsid()成为一个新会话。

     

  Question:

   如何查看系统中正在运行的守护进程有哪些?

     找出系统中名字以‘d’结尾的进程:$ ps -el | grep d$

     找出系统中名字以‘k’开头的进程:

     在一组进程中如何判断哪个进程是组长?

  2.调用setsid函数
 
  3.更改当前工作目录
  4.关闭文件描述符,并重定向标准输入、输出和错误输出
  5.设置守护进程的文件权限创建掩码

 

最新文章

  1. AC日记——最小的N个和 codevs 1245
  2. leveldb 学习笔记之log结构与存取流程
  3. hibernate----1-1
  4. 使用ajax上传中遇到的问题
  5. HDU 2588 GCD (欧拉函数)
  6. [mysql] mysql 5.6.X 慢查询日志
  7. POJ2965——The Pilots Brothers' refrigerator
  8. Consistent Hashing算法-搜索/负载均衡
  9. Eclipse使用总结
  10. CSS制作波浪线
  11. 前端 jQuery
  12. Unity 代码组件获取和使用、Resources加载、OnGUI、Time、Mathf、PlayerPref
  13. airflow整体架构
  14. 解决pycharm启动慢
  15. Route学习笔记之Area的Route注册
  16. iOS开发异常处理教程
  17. java环境变量 Path 与CLASSPATH
  18. Open JDk 源码下载地址
  19. HDU3829_Cat VS Dog
  20. sql 传入参数为逗号分隔的字符串处理方法

热门文章

  1. C++全局变量的声明和定义
  2. 最新的goldengate monitor 12.1.3已经发布
  3. Oracle GoldenGate 12c 新特性
  4. IOS四种保存数据的方式
  5. (转)深入理解javascript的function
  6. hd oj2015
  7. 解决:insert Vodafone sim card,open the mms read report,when receive the read report,cann't download..
  8. 深入学习:Windows下Git入门教程(上)
  9. Smart210学习记录-------内存初始化
  10. 第一个Sprint冲刺第六天