zoukankan      html  css  js  c++  java
  • Linux系统编程@进程管理(二)

    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.设置守护进程的文件权限创建掩码

     

  • 相关阅读:
    矩阵乘法
    年关了,抛一个模拟ip刷票的php程序
    mysql处理大数据合并的另一种方法
    php之aop实践
    轻量级php框架phpk v1.0发布
    eclipse
    super关键字的使用
    方法的重写
    方法的重载
    java 构造器 (构造方法)
  • 原文地址:https://www.cnblogs.com/kwseeker-bolgs/p/4355985.html
Copyright © 2011-2022 走看看