午夜免费_欧美一级免费看_欧美日韩一区二区视频在线观看_午夜视频在线_日本特黄a级高清免费大片_成年人黄色小视频

守护进程

守护进程(daemon)是一类在后台运行的特殊进程,用于执行特定的系统任务。很多守护进程在系统引导的时候启动,并且一直运行直到系统关闭。另一些只在需要的时候才启动,完成任务后就自动结束。

用户使守护进程独立于所有终端是因为,在守护进程从一个终端启动的情况下,这同一个终端可能被其他的用户使用。例如,用户从一个终端启动守护进程后退出,然后另外一个人也登录到这个终端。用户不希望后者在使用该终端的过程中,接收到守护进程的任何错误信息。同样,由终端键人的任何信号(例如中断信号)也不应该影响先前在该终端启动的任何守护进程的运行。虽然让服务器后台运行很容易(只要shell命令行以&结尾即可),但用户还应该做些工作,让程序本身能够自动进入后台,且不依赖于任何终端。

创建步骤

  • 调用fork(),创建新进程,它会是将来的守护进程.
  • 在父进程中调用exit,保证子进程不是父进程,成为孤儿进程
  • 调用setsid()创建新的会话区,让进程摆脱原会话的控制、让进程摆脱原进程组的控制和让进程摆脱原控制终端的控制。(如果不进行这步,孤儿进程将会在控制终端退出后退出)
  • 将当前目录改成根目录(如果把当前目录作为守护进程的目录,当前目录不能被卸载他作为守护进程的工作目录)
  • 将标准输入,标注输出,标准错误重定向到/dev/null.(否则会在控制终端中输出)
  • 重设文件创建掩码,文件创建掩码是指屏蔽掉文件创建时的对应位。由于使用fork函数新建的子进程继承了父进程的文件创建掩码,这就给该子进程使用文件带来了诸多的麻烦。因此,把文件创建掩码设置为0,可以大大增强该守护进程的灵活性。设置文件创建掩码的函数是umask,通常的使用方法为umask(0)。
  • 关闭文件描述符,用fork新建的子进程会从父进程那里继承一些已经打开了的文件。这些被打开的文件可能永远不会被守护进程读或写,但它们一样消耗系统资源,可能导致所在的文件系统无法卸载。

特点

首先,守护进程最重要的特性是后台运行。其次,守护进程必须与其运行前的环境隔离开来。这些环境包括未关闭的文件描述符、控制终端、会话和进程组、工作目录以及文件创建掩码等。这些环境通常是守护进程从执行它的父进程(特别是shell)继承下来的。最后,守护进程的启动方式有其特殊之处。它可以在Linux系统启动时从启动脚本/etc/rc.d中启动,也可以由作业控制进程crond启动,还可以由用户终端(通常是shell)执行。

除这些以外,守护进程与普通进程基本上没有什么区别。因此,编写守护进样实际上是把一个普通进程按照上述的守护进程的特性改造成为守护进程。

分类

按照服务类型分为如下几个。

  • 系统守护进程:syslogd、login、crond、at等。
  • 网络守护进程:sendmail、httpd、xinetd、等。
  • 独立启动的守护进程:httpd、named、xinetd等。
  • 被动守护进程(由xinetd启动):telnet、finger、ktalk等。
主站蜘蛛池模板: 久久久久久久久久久久久久久国产 | 91免费看片 | 久久久黄网 | 综合久久中文字幕 | 日韩精品成人免费视频 | 91免费高清视频 | 亚洲欧洲精品久久 | 午夜一级福利 | 夜夜草影院 | 9191在线观看 | 天堂一区二区三区 | 久久久精品一区二区三区 | 99热在线观看 | 91文字幕巨乱亚洲香蕉 | 婷婷综合久久日韩一区 | 国产成人免费在线 | 亚洲成人999 | 91高清视频在线 | 99视频在线看| 亚洲精品视频在线观看视频 | 中文字幕一区二区三天 | 免费看一区二区三区 | 777色狠狠一区二区三区 | 91高清视频 | 91小视频在线观看 | 99国产精品久久久久 | 偷拍成人一区亚洲欧美 | 午夜成年视频 | 免费观看视频91 | 一二三区视频在线 | 亚洲一级精品 | 91大神视频网站 | 一区二区三区四区五区中文字幕 | 91精品婷婷国产综合久久蝌蚪 | 日韩精品小视频 | 国产视频一区二区三区四区五区 | 91精品在线观看入口 | 国产福利观看 | 国产91精品高清一区二区三区 | 91看片在线观看 | 美女污视频网站 |