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. HDU - 1560:DNA sequence ( 迭代加深搜索基础题 )

    Problem Description The twenty-first century is a biology-technology developing century. We know tha ...

  2. ACM/OI中C++常用优化(实用/调试/技巧)代码(语法)

    一.C++万能编译头文件 #include<bits/stdc++.h> VS2017添加万能头文件 从 #include <iostream> #include <cs ...

  3. Android内存泄露检测 LeakCanary2.0(Kotlin版)的实现原理

    本文介绍了开源Android内存泄漏监控工具LeakCanary2.0版本的实现原理,同时介绍了新版本新增的hprof文件解析模块的实现原理,包括hprof文件协议格式.部分实现源码等. 一.概述 L ...

  4. Element UI Table合并行

    Vue使用Element-ui Table 合并行,官方只是一个非常简单的合并例子,通常业务都是相同的某个字段进行合并. 效果图 代码实现 1.Table <el-table :data=&qu ...

  5. zookeeper分布式锁原理及使用 curator 实现分布式锁

    本文为博主原创,未经允许不得转载: 1. zookeeper 分布式锁应用场景及特点分析 2. zookeeper 分布式原理 3. curator 实现分布式锁 1. zookeeper 分布式锁: ...

  6. 一个WPF开发的打印对话框-PrintDialogX

    今天五月一号,大家玩的开心哦. 1. 介绍 今天介绍一个WPF开发的打印对话框开源项目-PrintDialogX,该开源项目由<WPF开源项目:AIStudio.Wpf.AClient>作 ...

  7. VUE字符串模板@click失效

    因为字符串模板不能被vue所渲染,所以这种方式行不通. 可采用组件的方式 父组件 <template> <div id="app"> <My v-fo ...

  8. 浏览器兼容 : IE10

    <script> /*@cc_on @*//*@ if (document.documentMode == 10) { // 只在 IE10 文档模式下运行,例如 IE10 浏览器或 IE ...

  9. ffmpeg 字幕解码

    原文: https://blog.csdn.net/u011283226/article/details/102241233 [写在前面] 在前一篇,我已经讲过了读取外挂字幕并显示的方法:理解过滤图并 ...

  10. IBM jca 工具的学习与整理

    IBM jca 工具的学习与整理 背景 发现自己最早看到IBM这个工具的时间是 2022年9月份. 但是一直没有进行过仔细的学习与论证. 本周出现了一个问题. 虽然通过gclog明显看出来是一个oom ...