热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

UNIX网络编程卷一:第十三章守护进程和inetd超级服务器

守护进程(daemon)是在后台运行且不与任何控制终端关联的进程。因为它们通常由系统初始化脚本启动。守护进程有多种启动方式:1、由系

守护进程(daemon)

是在后台运行且不与任何控制终端关联的进程。因为它们通常由系统初始化脚本启动。

守护进程有多种启动方式:

1、由系统初始化脚本启动。 如inetd, Web

2、由inetd超级服务器启动。

inetd监听网络请求,当有一个请求到达时,启动相应的实际服务器(Telnet, FTP等)

3、cron守护进程按照规则定期执行一些程序。这些程序也作为daemon运行。

4、at命令,指定将来的某个时刻执行。

5、用户终端启动。

因为daemon没有控制终端,所以当有事发生时它们得有输出消息的某种方法。

syslog函数就是输出这些信息的标准方法。它把信息发送给syslog守护进程。


syslogd 守护进程

它在启动时的执行步骤:

1、读取配置文件 /etc/syslog.conf

该文件指定本守护进程可能收集的各种日志消息(log message)应该如何处理。

这些消息可能被添加到一个文件; 或被写到指定用户的登录窗口; 或被转发到另一个主机上的syslogd进程。

2、创建一个Unix域数据报套接字,给它绑定路径名/var/run/log (某些系统是/dev/log)

3、创建一个UDP套接字,给它绑定端口514 (syslog服务使用的端口号)

4、打开路径名/deb/klog。 来自内核中的任何出错消息

然后syslogd进入无限循环。调用select等待3个描述符之一变成可读,并按照配置文件进行处理。如果守护进程收到SIGHUP,那就重新读取配置文件。


我们自己写daemon时,可以创建一个Unix域套接字,绑定与syslogd相同的路径名,就可以发送我们的消息给syslogd了。

但是更简单的接口是使用syslog函数。

此外,也可以创建一个UDP套接字,把消息发送到 localhost:514 即可送到。


syslog函数

daemon函数: 将当前程序与控制终端脱离,在后台作为守护进程运行。


inet





推荐阅读
  • 技术日志:Ansible的安装及模块管理详解 ... [详细]
  • 深入解析Struts、Spring与Hibernate三大框架的面试要点与技巧 ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • 本文详细介绍如何使用Netzob工具逆向未知通信协议,涵盖从基本安装到高级模糊测试的全过程。通过实例演示,帮助读者掌握Netzob的核心功能。 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 本文详细介绍了如何在PHP中记录和管理行为日志,包括ThinkPHP框架中的日志记录方法、日志的用途、实现原理以及相关配置。 ... [详细]
  • 在将Web服务器和MySQL服务器分离的情况下,是否需要在Web服务器上安装MySQL?如果安装了MySQL,如何解决PHP连接MySQL服务器时出现的连接失败问题? ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 本文介绍了 Linux 系统中用于定期执行任务的 cron 服务及其配置方法。通过 crond 和 crontab 命令,用户可以轻松地安排系统和用户级别的周期性任务。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 在JavaWeb项目架构中,NFS(网络文件系统)的实现与优化是关键环节。NFS允许不同主机系统通过局域网共享文件和目录,提高资源利用率和数据访问效率。本文详细探讨了NFS在JavaWeb项目中的应用,包括配置、性能优化及常见问题的解决方案,旨在为开发者提供实用的技术参考。 ... [详细]
  • 深入理解Linux网络编程:UDP协议实战解析
    深入理解Linux网络编程:UDP协议实战解析 ... [详细]
  • 在项目开发过程中,掌握一些关键的Linux命令至关重要。例如,使用 `Ctrl+C` 可以立即终止当前正在执行的命令;通过 `ps -ef | grep ias` 可以查看特定服务的进程信息,包括进程ID(PID)和JVM参数(如内存分配和远程连接端口);而 `netstat -apn | more` 则用于显示网络连接状态,帮助开发者监控和调试网络服务。这些命令不仅提高了开发效率,还能有效解决运行时的各种问题。 ... [详细]
  • 本文探讨了文件传输过程中的优化与安全策略。具体而言,研究了如何将客户端的文件高效上传至服务器。通过使用结构体对象,可以封装文件的相关信息,如位置和大小,并利用缓冲区存储实际数据,从而实现高效的数据传输。此外,文章还讨论了在传输过程中确保数据完整性和安全性的多种方法,包括加密技术和身份验证机制。 ... [详细]
  • 分布式开源任务调度框架 TBSchedule 深度解析与应用实践
    本文深入解析了分布式开源任务调度框架 TBSchedule 的核心原理与应用场景,并通过实际案例详细介绍了其部署与使用方法。首先,从源码下载开始,详细阐述了 TBSchedule 的安装步骤和配置要点。接着,探讨了该框架在大规模分布式环境中的性能优化策略,以及如何通过灵活的任务调度机制提升系统效率。最后,结合具体实例,展示了 TBSchedule 在实际项目中的应用效果,为开发者提供了宝贵的实践经验。 ... [详细]
author-avatar
阿梓喵1995
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有