- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux核心级系统服务
只要是Linux系统,不管使用的发行版本、网络配置以及系统全局设计有什么不同,都有如下几个核心系统服务:init、inetd、syslogd和cron。这些服务提供的功能比较简单,但同时它们也是其他操作的基础。如果没有它们,Linux就不会有现在的威力。 本文将对每一个核心系统服务、相应的配置文件以及推荐的应用方式(如果有的话)逐个进行介绍。我们强烈推荐:务必要花上一些时间熟悉这些服务的实现原理。通过使用这些服务,人们已经设计出了许多富有创意的问题解决方案。
init服务
init进程是所有进程的发起者和控制者。因为在任何基于Unix的系统(比如Linux)中,它都是第一个运行的进程,所以init进程的编号(Process ID,PID)永远是1。如果init出现了问题,系统的其余部分也就随之而垮掉了。 init进程有两个作用。第一个作用是扮演终结父进程的角色。因为init进程永远不会被终止,所以系统总是可以确信它的存在,并在必要的时候以它为参照。如果某个进程在它衍生出来的全部子进程结束之前被终止,就会出现必须以init为参照的情况。此时那些失去了父进程的子进程就都会以init作为它们的父进程。快速执行一下ps -af 命令,可以列出许多父进程ID(Parent Process ID,PPID)为1的进程来。 init的第二个角色是在进入某个特定的运行级别(Runlevel)时运行相应的程序,以此对各种运行级别进行管理。它的这个作用是由/etc/inittab文件定义的。 1. /etc/inittab文件 /etc/inittab文件中包括了所有init启动运行级别所必须的信息。这个文件中的每一行语句的格式如下所示:
id : runlevels: action : process 注意:以#开始的语句是注释语句。看看你自己的/etc/inittab文件就可以发现其中充斥了大量的注释语句。如果确实需要对/etc/inittab文件进行什么改动(一般不会出现这种情况的),记住加上一些注释语句,解释为什么要做那些修改。 2. Telinit命令 通知init在什么时候切换系统运行级别的神秘力量实际上就是Telinit命令。这个命令有两个命令行参数:一个参数用来通知init准备切换过去的运行级别;另外一个是-tsec,其中的sec是在通知init之前需要等待的、以秒计算的时间。 注意:init是否真的切换运行级别是由它自己决定的。很明显,它经常切换,否则这个命令就不会那么有用了。在大多数Unix操作系统的具体实现(包括Linux)中,Telinit命令实际上只是一个对init程序的符号链接。基于此,许多人更喜欢使用init直接切换到他们想去的运行级别而不是使用Telinit。就个人而言,我发现使用Telinit切换运行级别更便于理解和记忆。
inetd进程
inetd程序是一个守护进程。您可能已经知道守护进程是一些特殊的程序:它们在被启动之后,自愿放弃对调用自己终端的控制权。守护进程与系统其余部分的接口只有依靠进程间通信(Interprocess Communication,IPC)通道、或者依靠向系统全局性日志文件(Log File)才能发送数据项。 inetd的角色是作为Telnet和FTP等与网络服务器相关的进程的“超级服务器”。这是一个简单的道理:并不是全部的服务器进程(包括那些接受新的Telnet和FTP连接的进程)都会如此频繁地被调用,以至于必须要有一个程序随时运行在内存中。因此为了避免出现可能有几十种服务都运行在内存中准备被使用的情况,它们都列在inetd的配置文件/etc/inetd.conf中。而代替它们的是inetd监听着进入的连接。这样只需要有一个进程在内存中就可以了。 inetd的另外一个优点是程序员并不想把需要网络连接的进程都编写到系统中去。inetd程序将处理网络代码,并把进入的网络数据流作为各个进程的标准输入(Standard-In,即Stdin)传递到其中。这些进程的输出(Stdout)将会被送回连接到该进程的主机去。 注意:除非你正在进行编程,否则是不需要连接到inetd的Stdin/Stdout功能上。从另一方面来说,如果有人打算编写一个简单的命令脚本程序并让它出现在网络中,就值得深入研究这个极为强大的功能。 1.etc/inetd.conf文件 etc/inetd.conf文件是inetd的配置文件。它的结构很简单:每一行语句代表一种服务。服务定义语句的格式如下所示:
srvce_name sock_type protocol [no]wait user srvr_prog srvr_pr
您可能关注的文档
最近下载
- TBNCY002-2023 西双版纳红茶 晒红茶.pdf VIP
- 机关单位人力资源管理中存在的问题及解决对策.docx VIP
- 2025年中级(四级)营销员职业技能鉴定《理论知识》真题卷(后附答案及解析).pdf VIP
- 大数据概论教学课件.pptx VIP
- 西双版纳红茶 晒红茶.docx VIP
- 室内装修全工程施工方案(3篇).docx VIP
- 2025年卫生事业单位招聘考试(中医学基础知识)历年参考题库含答案详解(5卷).docx VIP
- 50个广告分析.doc VIP
- GB32030-2022 潜水电泵能效限定值及能效等级 (2).pdf VIP
- (语文)福州时代中学2020级初一新生入学检测.pdf VIP
文档评论(0)