[Linux] 认识系统服务(daemon)

参考:《鸟哥的Linux私房菜》 

一、什么是 daemon 与服务(service)

         在英语中的daemon就有守护进程,后台程序的意思。简单来说就是一直在后台运行的进程,我们就称之为服务(service),或者是守护进程(daemon)。这些进程常驻在内存当中,通常都是负责一些系统所提供的功能以服务用户的各项任务,故而需要在后台持续的运行。守护进程独立于控制终端运行,这意味着它们不需要用户的直接交互就可以执行其任务。

        那什么是后台,什么是前台呢?在任务管理(job control)中,可以出现提示字符并让你操作的环境就称为前台(foreground),至于其他任务就可以让你放入后台(background)去暂停或运行。

        系统为了某些功能必须要提供一些服务(不论是系统本身还是网络方面),这个服务就称为service。

        一般来说,daemon和service是一样的东西,我们不需要做区分。因为完成某个服务需要一个daemon在后台中运行,没有这个daemon就不会有service。

      守护进程通常在系统启动时由初始化系统启动,或者通过手工方式启动,并且它们会在整个操作系统运行期间持续运行,除非被显式停止。守护进程的主要目的是执行长期运行的任务,例如系统日志记录、打印队列管理、文件备份等。为了确保守护进程不会干扰用户的正常操作,它们会脱离终端和控制台,这意味着即使用户注销或关闭登录会话,守护进程也会继续运行。

        守护进程的设计遵循一些特定的原则来确保它们能够有效地独立运行。首先,一个典型的守护进程会在启动后成为其自己的会话领导者,并成为一个新的进程组的组长。这样做是为了避免进程被其父进程的挂起信号所影响。此外,守护进程通常会将其当前工作目录设置为根目录(/),以防止因为文件系统卸载而导致的问题。它们还会关闭所有不需要的文件描述符,包括标准输入、标准输出和标准错误,以减少资源占用并避免潜在的数据丢失。守护进程还会重定向这些文件描述符到/dev/null或适当的日志文件,以便可以记录输出信息而不干扰其他进程或用户。

        守护进程在Linux系统中的管理和监控通常是通过各种工具和技术实现的。例如,使用systemd或SysV init脚本来控制守护进程的启动、停止和重启。这些工具允许系统管理员通过命令行或配置文件来管理守护进程。此外,许多守护进程都会实现自我监控机制,当出现故障时能够自动重启,从而提高系统的可靠性和稳定性。

         daemon既然是一个程序执行后的进程,那么daemon所处的那个原本的程序通常是如何命名的呢?(daemon程序的命名方式)。每个服务的开发者,在开发他们的服务时,都有特别的故事。不过,无论如何,这些服务的名称被建立之后,在Linux中使用时,通常在服务的名称之后会加上一个d,例如计划任务命令建立的 at 与 cron 这两个服务,它的程序会被取为 atd 与 crond ,这个 d 代表的就是daemon的意思。所以当我们使用 ps 或 top 查看进程时,都会发现很多的 {xxx}d 的进程,通常那就是一些daemon的进程。

守护进程的特点:

  1. 后台运行:守护进程在后台运行,不与任何终端或控制台直接关联。
  2. 长期存活:守护进程的生命周期通常很长,通常在系统启动时开始运行,并一直运行到系统关闭或被显式停止。
  3. 资源管理:为了确保系统的稳定性和性能,守护进程通常会释放不需要的资源,比如关闭标准输入、输出和错误流,并将当前工作目录设置为根目录 /
  4. 权限管理:守护进程可能需要以root权限运行,以便能够使用特殊端口(通常是1-1024之间的端口)或访问某些特殊的系统资源。
  5. 服务提供:守护进程通常为用户提供某种服务,比如网络服务、打印服务、系统日志服务等。

1.1 init 与 systemd

        在早期的Linux系统中,初始化进程(init)是系统启动后第一个运行的进程,它的PID(进程标识号)总是1。init负责读取 /etc/inittab 文件中的配置信息,根据这个配置文件来启动不同的服务和进程。这个初始化进程及其配置文件定义了系统的运行级别、服务的启动顺序以及其他启动时的任务。

        随着时间的发展,随着计算机硬件和操作系统的复杂性增加,传统的init系统逐渐暴露出一些不足之处,例如启动速度较慢、依赖关系处理不够灵活等问题。因此,为了提高系统的启动速度和效率,以及更好地支持复杂的依赖关系,systemd 应运而生。

        systemd 是一种现代的初始化系统,它提供了一种更为高效的方式来管理服务和进程。相比于传统的init,systemd 提供了以下优点:

  • 并行启动systemd 可以并行启动多个服务,而不是按照严格的顺序逐个启动。
  • 依赖关系管理systemd 支持更复杂的依赖关系,可以根据服务之间的依赖关系动态地调整启动顺序。
  • 统一的接口systemd 提供了一套统一的命令和接口来管理服务,如 systemctl 命令。
  • 内存管理systemd 更好地管理内存资源,例如在需要时加载服务,减少不必要的内存占用。
  • 高级特性systemd 还支持诸如单元文件(unit files)管理、服务重启策略、日志记录等功能。

        由于 systemd 提供了更多的功能和更好的性能,大多数现代Linux发行版已经默认采用了 systemd 作为初始化系统。这意味着在这些系统中,传统的init系统已经被完全替代,用户和管理员现在使用 systemctl 和相关的 systemd 工具来管理服务和进程。

        从命名方式可以看出 systemd = system + d 组成,这个 d 代表的就是daemon的意思。

1.2 早期 System V 的 init 管理操作中 daemon 的主要分类(Optional)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/407207.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mybatis实现员工管理系统

文章目录 1.案例需求2.编程思路3.案例源码4.小结 1.案例需求 在上次做的父子模块的maven以及Ajax实现人工管理系统的基础上使用Mybatis实现员工管理系统的增删改查,具体运行效果如下: 2.编程思路 Mybatis框架的一般执行流程: 创建MyBati…

Java中的IO流-最全最基础的IO流概述和简介

IO流简介 IO是什么 Java中的IO流是用于处理数据输入和输出的核心机制。通过应用IO流可以使Java程序能够与外部世界(如磁盘文件、网络、硬件设备等)进行数据交互。IO流的全称为输入/输出流(Input/Output Stream),它是…

探索Python性能优化的神秘力量:Line Profiler

文章目录 探索Python性能优化的神秘力量:Line Profiler第一部分:背景第二部分:库简介第三部分:安装指南第四部分:基本使用方法第五部分:实际应用场景场景1:数据分析场景2:机器学习模…

qt-16可扩展对话框--隐藏和展现

可扩展对话框 知识点extension.hextension.cppmain.cpp运行图初始化隐藏展现--点击--详细按钮 知识点 MainLayout->setSizeConstraint(QLayout::SetFixedSize);//固定窗口大小 extension.h #ifndef EXTENSION_H #define EXTENSION_H#include <QDialog>class Extens…

腾讯2025校招不需要笔试了!速来投递!付内推

速报&#xff01;互联网扛把子腾讯 开放2025全球校招 想进鹅厂的同学请注意❗❗❗ 本次校招有重要流程变化 一起来看看今年鹅厂校招的三大重要变化。 1️⃣笔面流程变化&#xff1a;取消统一笔试 本次腾讯校招最重要的变化就是取消统一笔试&#xff08;在线测试未取消&am…

如何将图片上不需要的部分裁剪掉?裁剪图片的8种方法介绍

如何将图片上不需要的部分裁剪掉&#xff1f;在现代视觉媒体中&#xff0c;图片的质量和构图直接影响到信息传达的效果和观众的视觉体验。图片裁剪的目的是将图像的某些区域去除&#xff0c;从而专注于更重要的部分。这种处理方式常用于去除背景中的干扰元素、调整画面的比例、…

车牌号字符检测系统源码分享 # [一条龙教学YOLOV8标注好的数据集一键训练_70+全套改进创新点发刊_Web前端展示]

车牌号字符检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义 随着智能交通系统的快速发展&#xff0c;车牌号字…

开放式耳机音质好吗?2024热门耳机选购推荐!

开放式耳机的音质是否好&#xff0c;很大程度上取决于具体的产品型号和品牌&#xff0c;以及它们所采用的声学技术和驱动单元。根据搜索结果&#xff0c;市面上一些开放式耳机提供了不错的音质体验&#xff0c;尤其是在高音和中音方面表现出色&#xff0c;同时也有几款在低音方…

电梯节能 回馈装置

1、产品介绍 PFE系列电梯能量回馈装置是加拿大技术制造的电梯专用高性能回馈制动单元。 自2004年8月&#xff0c;近20年间&#xff0c;我们的产品历经六次重大设计改进、21次细节设计改进、105次微小技术改进&#xff0c;已经是第六代产品。 电梯变频回馈行业【优秀】水平&a…

Clipper2Lib的安装使用(新手友好)

Clipper2简介 Clipper2 库执行简单和复杂多边形的交集、并集、差集 和 异或 布尔操作&#xff0c;同时也执行多边形偏移。作者在十年前编写的原始 Clipper 库的重大更新版&#xff0c;现在称之为 Clipper1。尽管 Clipper1 仍然运行得很好&#xff0c;但 Clipper2 在各个方面都…

PC6402恒频DC-DC降压开关2A输出电流SOT23-5封装

PC6402是1.0MHz的恒定频率&#xff0c;电流模式降压转换器。这是理想的适用于要求非常高的便携式设备单电池锂离子电流高达2A电池&#xff0c;同时仍达到90%以上峰值负载条件下的效率。这个PC6402还可以以100%的占空比运行低压差运行&#xff0c;延长电池寿命轻载运行时的便携式…

拼车系统开发方案

一、项目背景 随着城市化进程的加快和私家车数量的激增&#xff0c;交通拥堵和环境污染问题日益严峻。拼车作为一种绿色、经济的出行方式&#xff0c;逐渐成为缓解这些问题的重要途径。开发一个高效、安全、便捷的拼车系统不仅有助于提升出行效率&#xff0c;还能减少交通拥堵…

昇腾AI BOX强势来袭,欧拉系统加持,定义边缘计算新标准!

随着CentOS官方宣布停止维护&#xff0c;用户在系统维护方面面临严峻挑战&#xff0c;急需稳定且兼容的替代方案。在国产化浪潮中&#xff0c;华为欧拉&#xff08;openEuler&#xff09;系统凭借其开放的社区模式与全球开发者共建的多元化软件生态&#xff0c;成为国内开发者的…

找了这么久的nicovideo视频下载方式,终于被我遇到啦

各位二次元的宝子们有福啦&#xff0c;看看我发现了什么宝贝&#xff0c;一个可以保存nicovideo视频的宝藏神器。还能选择需要的分辨率&#xff0c;下载的视频都超级清晰的。终于能实现在nicovideo保存视频自由啦&#xff0c;操作也是十分简单&#xff0c;我只看了一遍就学会了…

苹果手机黑屏打不开怎么办?几个小招定位和解决问题

苹果手机有时候会遇到一些让人头疼的问题&#xff0c;比如黑屏开不了机。这种情况可能是由多种原因造成的&#xff0c;有些是软件方面的&#xff0c;有些是硬件方面的。本文将为您介绍苹果黑屏开不了机的常见原因和解决方法&#xff0c;希望能够帮助您恢复您的手机正常使用。 一…

stm32—SPI

1. SPI 是什么 SPI (Serial Peripheral Interface)&#xff1a;是由美国摩托罗拉公司(Motorala)最先推出的一种同步全双工串行传输规范&#xff0c;也是一种单片机外设芯片串行扩展接口 SPI 接口主要应用在 EEPROM&#xff0c;FLASH&#xff0c;实时时钟&#xff0c; AD转换器&…

树莓派5 笔记26:ollama大型语言模型_中文输入法_Python_espeak文字转语音

今日继续学习树莓派5 8G&#xff1a;&#xff08;Raspberry Pi&#xff0c;简称RPi或RasPi&#xff09; 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: Opencv 与 python 版本如下&#xff1a; 下载大语言模型&#xff0c;下载中文输入法&#…

基于vue框架的比赛门票出售的系统12lh6(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;用户,赛事类型,赛事信息,比赛队伍,比赛结果 开题报告内容 基于Vue框架的比赛门票出售系统开题报告 一、研究背景与意义 随着体育产业的蓬勃发展&#xff0c;各类体育赛事如雨后春笋般涌现&#xff0c;吸引了全球亿万观众的关注与参与…

【简历】25届西南某211JAVA简历:大厂面试官一看到DDD,肯定笑崩了

注&#xff1a;为保证用户信息安全&#xff0c;姓名和学校等信息已经进行同层次变更&#xff0c;内容部分细节也进行了部分隐藏 简历说明 今天来看一份25届西南某大学211硕士的Java简历&#xff0c;学校这块就是一个正常的211&#xff0c;在大厂的话211和普通985&#xff0c;…

Java 3.1 - 计算机网络

目录 OSI 七层协议是什么&#xff1f;每一层的作用是什么&#xff1f; TCP / IP 四层模型是什么&#xff1f;每一层的作用是什么&#xff1f; 应用层&#xff08;Application Layer&#xff09; 传输层&#xff08;Transport Layer&#xff09; 网络层&#xff08;Network …