Linux守护进程详解:启动、特性和消息处理
需积分: 34 158 浏览量
更新于2024-08-25
收藏 970KB PPT 举报
"本文主要介绍了守护进程的概念、特性和实现方法,强调了其在后台运行、隔离环境的特点,以及在Linux系统中的重要作用。守护进程通常由系统初始化脚本或超级服务器如inetd启动,也可以由用户终端启动。此外,文章还提到了进程组、会话期、控制终端等相关概念,并指出setsid系统调用在创建守护进程中的关键作用。"
守护进程是操作系统中一种特殊的进程,它们在后台运行,不与任何终端关联,常用于执行持续性的系统服务或管理任务。例如,网络服务器、计划任务管理(cron)、日志管理等。守护进程的特性包括:
1. **后台运行**:守护进程不会在用户的终端窗口中显示,而是独立于用户的交互式会话。
2. **环境隔离**:为了确保正常运行,守护进程需要从其父进程(尤其是shell)中隔离出来,关闭不需要的文件描述符,改变工作目录为根目录(/),并设置新的文件创建掩模。
守护进程的启动方式多样,常见的包括:
1. **系统启动时初始化脚本启动**:位于`/etc`目录或类似路径下的初始化脚本负责启动。
2. **由inetd超级服务器启动**:inetd负责监听网络请求,根据配置启动相应的守护进程。
3. **cron守护进程启动**:按预定时间间隔执行任务。
4. **用户终端启动**:某些守护进程可以通过命令行直接启动,然后立即转为后台运行。
在没有控制终端的情况下,守护进程通常使用syslog进行错误和通知消息的输出。syslog函数将这些消息发送给syslog守护进程,以便记录和处理。
守护进程与进程组、会话期和控制终端的关系密切:
- **进程组**:每个进程都属于一个进程组,进程组号是组长的进程号。进程组只要有一个进程存在就会继续存在。
- **会话期**:登录会话可以包含多个进程组,而会话期可能有一个控制终端。
- **控制终端**:与会话期关联的终端称为控制终端,它对会话内的进程发送信号,如Ctrl+C或Ctrl+\。
创建守护进程的关键步骤之一是调用`setsid`系统调用,这使得进程成为新的会话组长和进程组长,从而与原来的控制终端分离。此外,守护进程通常还会重置信号处理函数,关闭不必要的文件描述符,以避免与父进程共享资源,确保其独立运行。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2015-12-29 上传
2020-09-21 上传
2021-01-19 上传
2010-11-12 上传
2021-06-29 上传
2021-07-17 上传
西住流军神
- 粉丝: 31
- 资源: 2万+
最新资源
- Thinking in Java(第三版)
- Javascript基础教程
- 系统管理指南-Solaris Containers-资源管理和Solaris Zones.pdf
- linux C语言编程黑金教程
- 图像旋转 c++ 设计程序
- LinuxBash脚本编程大全
- Oracle 10g数据库管理艺术(英文)
- Java面试题..很全面Java面试题..很全面
- The Definitive ANTLR Reference: Building Domain-Specific Languages
- Matlab编程(第二版)
- TortoiseSVN日常使用指南
- struts spring hibernate 面试总结.doc
- sql server命令
- Flex 3 Cookbook中文
- EasyJWeb-Velocity velocity学习
- 门禁系统与原理doc版本