Linux系统服务之init

系统 Linux
系统服务是一种应用程序类型,它在后台运行。服务应用程序通常可以在本地和通过网络为用户提供一些功能,例如客户端/服务器应用程序、Web服务器、数据库服务器以及其他基于服务器的应用程序,下文我将给大家介绍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切换运行级别更便于理解和记忆。

上文讲的是linux系统服务中的init,希望对大家有所帮助

【编辑推荐】

 

 

 

 

责任编辑:赵鹏 来源: 网络转载
相关推荐

2011-01-14 17:21:37

Linuxcron

2011-01-14 17:24:09

2011-01-14 17:21:37

Linuxsyslogd

2021-07-13 10:35:00

LinuxNFS服务器

2011-01-14 15:58:01

Linux集群系统

2011-01-14 15:51:26

Linux集群系统

2011-01-14 16:14:41

Linux集群系统

2011-01-14 16:04:01

Linux集群系统

2011-01-14 15:32:17

2018-08-01 14:20:11

微服务架构人工智能

2010-03-03 09:16:17

2011-05-16 10:13:51

Linux优化

2016-10-17 08:49:15

WindowsLinuxArch Linux

2014-12-01 11:25:11

sysdigLinux

2009-10-22 12:27:30

linux块设备

2011-03-24 10:11:59

Linux虚拟内存优化

2009-01-03 10:09:00

2010-03-05 09:44:20

Linux系统安全提高

2011-03-24 10:18:44

2017-08-31 14:40:54

Linuxinit进程app启动
点赞
收藏

51CTO技术栈公众号