12-1守护进程

12-1-1介绍

​   Daemom是Linux中的后台服务进程,通常独立于控制终端并且周期性地执行某种任务或者事件。这些进 程一般不直接和用户交互,不受用户的登录,注销等影响。没有控制终端。

​ 假设我们可以通过crlt+z来强制结束进程,但是当我们连续多次crlt+z后,发现现在并没有关闭我们的终 端,这就是守护进程的用处,它不受用户的影响,它维护着系统中一些基本的功能。

12-1-2 进程组与会话

进程组

  是一个或多个进程的集合,每个进程都有属于它的进程组,有时候我们使用进程组可以更方便的对进程进行管理。当父进程创建子进程的时候,默认子进程与父进程都同属于一个进程组。

进程组的ID == 第一个进程的ID,同时这个进程也叫组长进程。例如一个父进程创建了很多个子进程,父进程和多个子进程就同属于一个组,由于父进程是进程组的第一个进程,所以父进程就是进程组组长。

可以实现某些信号来将整个进程组内的进程杀死。只要进程组还有一个进程存在,那进程组就存在,与组长是否存在无关。进程组的生命周期:从创建开始到最后一个进程离开。

会话:

  一个会话是由一个或多个进程组组成的集合。在建创一个会话时,需要创建一个新的进程组,并将该进程组的组长设置为创建会话的进程。因此,如果创建会话的进程本身已经是一个进程组的组长进程,那么就无法再创建会话了。

  创建会话的进程成为一个进程组的组长进程,负责管理和控制该进程组中的其他进程。同时也因为创建会话的进程是第一个加入会话的,使用该进程会成为会话的会长。

  当创建一个新会话的时候,它会丢弃原有的控制终端的链接。

12-2 创建守护进程

​ 第一步:在父进程中调用fork函数创建一个子进程,并且在子进程中使用setsid函数创建一个新的会话。

​ 第二步:关闭标准输入,标准输出和标准错误的文件描述符。以防止终端关联并避免输入日志等干扰。

​ 第三步(可选):改变并且工作目录,使用chdir(路径)来改变。

​ 第四步:执行核心工作。

Linux的守护进程 [补档-2023-08-10]的更多相关文章

  1. python实现Linux启动守护进程

    python实现Linux启动守护进程 DaemonClass.py代码: #/usr/bin/env python # -*- coding: utf-8 -*- import sys import ...

  2. linux C守护进程编写

    linux编程-守护进程编写 守护进程(Daemon)是运行在后台的一种特殊进程.它独立于控制终端并且周期性地执行某种任务或等待 处理某些发生的事件.守护进程是一种很有用的进程. Linux的大多数服 ...

  3. linux 创建守护进程的相关知识

    linux 创建守护进程的相关知识 http://www.114390.com/article/46410.htm linux 创建守护进程的相关知识,这篇文章主要介绍了linux 创建守护进程的相关 ...

  4. asp.net core2.0 部署centos7/linux系统 --守护进程supervisor(二)

    原文:asp.net core2.0 部署centos7/linux系统 --守护进程supervisor(二) 续上一篇文章:asp.net core2.0 部署centos7/linux系统 -- ...

  5. 【Linux】- 守护进程的启动方法

    转自:Linux 守护进程的启动方法 Linux中"守护进程"(daemon)就是一直在后台运行的进程(daemon). 本文介绍如何将一个 Web 应用,启动为守护进程. 一.问 ...

  6. Linux Supervisor 守护进程基本配置

    supervisor:C/S架构的进程控制系统,可使用户在类UNIX系统中监控.管理进程.常用于管理与某个用户或项目相关的进程. 组成部分supervisord:服务守护进程supervisorctl ...

  7. Linux之守护进程

    一.守护进程概述 在linux或者unix操作系统中在系统的引导的时候会开启很多服务,这些服务就叫做守护进 程.为了增加灵活性,root可以选择系统开启的模式,这些模式叫做运行级别,每一种运行级别以一 ...

  8. 深入理解Linux操作系统守护进程的意义

    Linux服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户.提供这些服务的程序是由运行在后台的守护进程(daemons)来执行的.守护进程 ...

  9. linux创建守护进程

    守护进程deamon 是一个后台进程,无需用户输入就能运行,用来在系统后台提供某种服务. 常见的守护进程有Wbe服务器.邮件服务器以及数据库服务器等等.守护进程不能控制终端,所以任何的输入和输出都需要 ...

  10. 编写Linux/Unix守护进程

    原文: http://www.cnblogs.com/haimingwey/archive/2012/04/25/2470190.html 守护进程在Linux/Unix系统中有着广泛的应用.有时,开 ...

随机推荐

  1. 详解 SSL(一):网址栏的小绿锁有什么意义?

    随着互联网的飞速发展,用户信息泄漏.数据泄露等安全问题的事件频繁发生.这一切不一定是网站的问题,有时候可能是自己不经意间泄露了自己的信息.例如钓鱼网站就是日常生活中比较常见的,钓鱼网站和真实网站差别细 ...

  2. -bash: /home/advert/bin/vim: No such file or directory

    今天advert用户使用vim时,突然报错 -bash: /home/advert/bin/vim: No such file or directory 之前还好好的,且其他用户都能用vim,查看也是 ...

  3. 地图区域大数据量 marker 坐标点高效抽稀算法

    按网上的思路一般要写双层循环,第一层循环遍历点集合,时间复杂度为O(N),第二层循环遍历结果集,逐一计算距离,距离小于阈值的不加入结果集,距离大于阈值的加入结果集,时间复杂度为O(M),双层循环总时间 ...

  4. ifelse优化方案

    优化 if else:https://blog.csdn.net/FBB360JAVA/article/details/103832405 利用java8特性优化: https://blog.csdn ...

  5. freeswitch配置SBC的方案

    概述 freeswitch 是一款好用的开源软交换平台. 但是,fs不是专为SBC而开发的,所以需要做一些定制化的配置和开发. 本文主要介绍如何利用fs的基本功能配置一个简单的SBC方案,满足一般化需 ...

  6. 图文ASP.Net MVC Razor页面中HtmlHelper帮助程序的写法

    将以下内容复制到cshtml文件中 @using Microsoft.AspNetCore.Html @{ ViewData["Title"] = ""; } ...

  7. POJ

    //poj 2080//题目大意:给定天数,从2000年1月1日经过这些天后的 年 月 日 及 星期几//代码参照大牛的写的,本人还是处于菜鸟阶段,思路很好#include<stdio.h> ...

  8. C++ 利用模板偏特化和 decltype(()) 识别表达式的值类别

    刚刚看到一篇 C++ 博客,里面讲到用模板偏特化和 decltype() 识别值类别:lvalue glvalue xvalue rvalue prvalue.依照博客的方法试了一下,发现根本行不通. ...

  9. CentOS下PHP7安装mysqlnd模块

    单独安装mysqlnd驱动 如果是centos下的yum安装方式,那么可以参考后续操作. 因为mysqlnd是mysql原生的驱动,如果已经安装了php-mysql,则需要先卸载,否则会遇到冲突. 先 ...

  10. 【C/C++】 开发必备知识总结

    >from: C/C++ 开发必备知识总结 (qq.com) const 作用 修饰变量,说明该变量不可以被改变: 修饰指针,分为指向常量的指针和指针常量: 常量引用,经常用于形参类型,即避免了 ...