当前位置:嗨网首页>书籍在线阅读

02-概述

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

37.1 概述

daemon是一种具备下列特征的进程。

  • 它的生命周期很长。通常,一个daemon会在系统启动的时候被创建并一直运行直至系统被关闭。
  • 它在后台运行并且不拥有控制终端。控制终端的缺失确保了内核永远不会为daemon自动生成任何任务控制信号以及终端相关的信号(如SIGINT、SIGTSTP和SIGHUP)。

daemon是用来执行特殊任务的,如下面的示例所示。

  • cron:一个在规定时间执行命令的daemon。
  • sshd:安全shell daemon,允许在远程主机上使用一个安全的通信协议登录系统。
  • httpd:HTTP服务器daemon(Apache),它用于服务Web页面。
  • inetd:Internet超级服务器daemon(参见60.5节),它监听从指定的TCP/IP端口上进入的网络连接并启动相应的服务器程序来处理这些连接。

很多标准的daemon会作为特权进程运行(即有效用户ID为0),因此在编写daemon程序时应该遵循第38章中给出的指南。

通常会将daemon程序的名称以字母d结尾(但并不是所有人都遵循这个惯例)。

在Linux上,特定的daemon会作为内核线程运行。实现此类daemon的代码是内核的一部分,它们通常在系统启动的时候被创建。当使用ps(1)列出线程时,这些daemon的名称会用方括号([])括起来。其中一个内核线程是pdflush,它会定期将脏页面(即高速缓冲区中的页面)写入磁盘。