Linux 目录之 /etc/init.d/ 介绍

文章目录

  • 一、关于目录 /etc/init.d/
  • 二、关于目录 /etc/rc.d/init.d/
  • 三、关于文件 /etc/rc.local
  • 四、/etc/init.d/ 和 service 文件
  • 五、关于命令 service
  • 六、关于文件 /etc/inittab
  • 七、关于目录 /etc/init/

注意:以 System V init 或者 Upstart 为初始化系统的 Linux 讨论目录 /etc/init.d/ 才有意义。

一、关于目录 /etc/init.d/

/etc/init.d/ 这个目录到底是干嘛的呢?

目录 /etc/init.d/ 中包含许多系统服务的启动和停止脚本。它控制着所有从 acpid 到 x11-common 的各种事务。当然,/etc/init.d/ 远远没有这么简单。
(译者注:acpid 是 Linux 操作系统新型电源管理标准 ;X11 也叫做 X Window 系统,X Window 系统 (X11 或 X)是一种位图显示的视窗系统。它是在 Unix 和类 Unix 操作系统以及 OpenVMS 上建立图形用户界面的标准工具包和协议,并可用于几乎已有的现代操作系统)。

当你查看 /etc 目录时,你会发现许多 rc#.d 形式存在的目录(这里#代表一个指定的初始化级别,范围是0~6)。在这些目录之下,包含了许多对进程进行控制的脚本。这些脚本要么以“K”开头,要么以“S”开头。以“K”开头的脚本运行在以“S”开头的脚本之前。这些脚本放置的地方,将决定这些脚本什么时候开始运行。有时候你希望能在不使用 kill 或 killall 命令的情况下,能干净的启动或杀死一个进程。这就是 /etc/init.d/ 能够派上用场的地方了!

如果你在使用 Fedora 系统,你可以找到这个目录:/etc/rc.d/init.d。实际上无论 init.d/ 放在什么地方,它都发挥着相同的作用。

为了能够使用init.d目录下的脚本,你需要有 root 权限。每个脚本都将被作为一个命令运行,该命令的结构大致如下所示:

/etc/init.d/command 选项

command 是实际运行的命令,选项可以有如下几种:

start
stop
reload
restart
force-reload

大多数的情况下,你会使用 start,stop,restart 选项。例如,如果你想关闭网络,你可以使用如下形式的命令:

/etc/init.d/networking stop

又比如,你改变了网络设置,并且需要重启网络。你可以使用如下命令:

/etc/init.d/networking restart

目录 /etc/init.d/ 下常用初始化脚本有:

networking
samba
apache2
ftpd
sshd
dovecot
mysql

当然,你可能有更多常用的脚本,这个取决于你安装了什么 Linux 操作系统。

其实目录 /etc/init.d 是符号链接文件,实际上是链接到目录 /etc/rc.d/init.d,你可以通过以下命令验证:

[root@htlwk0001host ~]# ll /etc/init.d
lrwxrwxrwx. 1 root root 11 5月  11 2019 /etc/init.d -> rc.d/init.d

or

[root@htlwk0001host ~]# ls -ld /etc/init.d
lrwxrwxrwx. 1 root root 11 5月  11 2019 /etc/init.d -> rc.d/init.d

建立方法是:

[root@htlwk0001host ~]# ln -s /etc/rc.d/init.d /etc/init.d

二、关于目录 /etc/rc.d/init.d/

大多数的 Linux 发行版本中,启动的是目录 /etc/rc.d/init.d/ 下的服务,这个目录下存放都是实际的服务脚本文件。

Linux 的每个运行级别,在 /etc/rc.d/ 下都有一个子目录分别是 rc0.d,rc1.d …… rc6.d,其实这些 rcN.d/ 目录下存放的都是链接到目录 /etc/rc.d/init.d/ 下部分脚本链接文件。每个级别要执行的服务就在相对应的目录下,比如级别 5 要启动的服务就都放在 rc5.d/ 下,但是放在这个 rc5.d/ 下的都是一些链接文件,链接到 /etc/rc.d/init.d/ 中相对应的实际脚本文件。

例如,目录 /etc/rc.d/rc2.d/ 下的 S10network 链接文件,实际是链接到目录 /etc/rc.d/init.d/ 下的脚本文件 network。

/etc/rc.d/rc2.d/ 下面的文件就是和运行级 2 有关的。文件开头的 S 代表 start 就是启动服务的意思,后面的数字 10 就是启动的顺序。例如,在同一个目录下,你还可以看到 S80postfix 这个文件,80 就是顺序在 10 以后,因为没有启动网络的情况下,启动 postfix 是没有任何作用的。

在这里插入图片描述

三、关于文件 /etc/rc.local

/etc/rc.local 也是我经常使用的一个脚本。该脚本是在系统初始化级别的脚本运行之后再执行的,因此可以安全地在里面添加你想在系统启动之后执行的脚本。常见的情况是你可以在里面添加 NFS 挂载 /mount 脚本。此外,你也可以在里面添加一些调试用的脚本命令。例如,我就碰到过这种情况:samba 服务总是无法正常运行,而检查发现,samba 是在系统启动过程中就该启动执行的,也就是说 samba守护程序配置保证了这种功能本应该正确执行。碰到这种类似情况,一般我也懒得花大量时间去查为什么,我只需要简单的在 /etc/rc.local 脚本里加上这么一行:/etc/init.d/samba start,这样就成功的解决了samba 服务异常的问题。

四、/etc/init.d/ 和 service 文件

service 文件是使用 systemd 作为初始化程序的 Linux 系统才有的服务文件,叫“服务配置单元文件”,用来取代旧初始化系统中的脚本文件,但是他们可能会同时存在系统中。

如果同时存在的话,在目录 /etc/init.d/ 下的脚本文件的优先级会高于目录 /etc/systemd/system/ 下的 service 文件。

五、关于命令 service

service xxxx start|stop|restart 相当于是对 /etc/init.d/ 下的 xxxx 的封装,相当于是一个管理命令,实际执行的是 /etc/init.d/下的可执行程序。如果 /etc/init.d/下没有该服务的可执行程序,则会查找对应的 service 文件

六、关于文件 /etc/inittab

这是 init 程序的配置文件,系统的运行级别就是在 /etc/inittab 文件里指定,所谓“运行级”就是操作系统当前正在运行的功能级别。这个级别从1 到6 ,具有不同的功能。

七、关于目录 /etc/init/

/etc/init/ 包含的是 Upstart(SysV init的替代版本)的配置文件,和 /etc/init.d/ 的作用几乎差不多。这样似乎 /etc/init/ 可以看作 /etc/init.d/ 的演化版本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334203.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 异常处理发生异常_处理Java中的异常

java 异常处理发生异常每个程序员都希望编写一个完美的程序。 也就是说,程序运行时没有任何障碍。 好吧,如果希望是马,乞g就会骑。 除了程序员的所有愿望之外,有时还会发生无法预料的情况。 在Java中,这些无法预料的…

android提交项目到svn,Android Studio 配置SVN,通过Share project提交项目和实现忽略文件...

1:首先电脑本身装的SVN必须在bin目录下包含svn.exe文件,如下图。这个文件是在安装SVN时选择安装command line client tools才会出现。如果没有,需要重新安装SVN。2:将SVN关联到Android Studio中声明:在这里我使用的And…

数独游戏技巧从入门到精通_如何引导孩子入门九宫格数独?掌握4个技巧口诀,孩子思维提升快...

九宫格数独对孩子的思维训练有着非常不错的效果,我们完全可以用其培养孩子对数字的兴趣,并培养孩子严谨的逻辑推理态度。那九宫格数独有没有技巧口诀呢?对于孩子来说,过于复杂的技巧他们也掌握不了。所以,我们培养孩子…

Spring Boot和Apache Camel

随着软件世界的发展,正在开发更加复杂的系统,这些系统必须相互集成。 它从SOA开始,然后一直到微服务。 骆驼是我想到的第一大集成工具,因为如今的骆驼springboot是一个非常强大的组合。 第一步是将骆驼依赖项包含到我们的sprin…

苹果android投屏,iphone怎么投屏到mac?苹果手机投屏到苹果电脑方法

iphone和mac的使用人群越来越多,其中投屏功能却难倒了大部分新手用户,许多使用iPhone以及Mac的用户朋友都还不知道iPhone怎么投屏到mac,好奇的用户朋友马上点击查看iphone投屏到mac教程来实现这个具有科技革新感的功能吧。官方推荐方法1:用数据线- 1.使用lightning线…

微服务java模块内存管理_Java 9模块服务

微服务java模块内存管理接线与查找 Java长期以来都有一个ServiceLoader类。 它是在1.6中引入的,但是自Java 1.2以来就使用了类似的技术。 一些软件组件使用了它,但是使用并不广泛。 它可以用于模块化应用程序(甚至更多)&#xff0…

使用实例工厂方法实例化_一些工厂实例

使用实例工厂方法实例化我时不时地发现自己摸索了一些旧代码,找到了“我在哪里做过类似工厂的事情”的示例。 上周再次发生这种情况时,我决定只查找所有示例,并创建一个示例项目和有关该示例的博客文章。 所以在这篇文章中,我&a…

linux内核设计与实现 epub_Epoll学习服务器的简单实现-Linux内核Epoll结构

1.Begins~有的人学习linux编程很久,只知道网络编程是socket,bind, listen。。。,然而这些都是网络通信软件最基本的接口。在某网络公司待了y,也了解到公司的基础就是网络转发 ,然而网络转发实现并非我们平时…

鸿蒙有安卓内核吗,华为鸿蒙2.0可以替代安卓吗,华为鸿蒙2.0优势在哪

在华为开发者大会上,华为消费业务CEO 余承东,正式发布鸿蒙OS2.0,并宣布华为鸿蒙OS将全面启用全场景生态,并将于2020年12月发布手机版。余承东还表示,明年,华为的智能手机将全面升级,以支持鸿蒙操…

命名对象实体对象_我的对象命名

命名对象实体对象这是最常见的辩论之一。 大多数人对此主题有自己的见解,却没人能真正说出哪个是正确的。 我当然不能,但是尽管如此,我还是决定与大家分享我的想法,投入两美分,也许对某人会有帮助。 当我创建一个新类…

微信html人脸识别接口,微信人脸识别可视化的实现:

实现方式主要通过以下模块实现:DateFromWebChat (从网页版微信窗口下载好友头像)AI (识别模块,主要用于识别好友头像是否为人脸,并且计算人脸的数量与头像的总数且return)DateVisul (数据可视化模块,用与AI模块返回参数的可视化)u…

安卓手机端运行的adb工具_MQTT通信手机端接收生产车间设备运行信息3

应用场景:对车间重点设备的运行参数进行实时跟踪。比如烘干炉的烟囱温度、TNV的出口温度、喷漆室的温湿度、小时产量等等信息。以前这些信息的获取都需要在电脑端获取、相对比较繁琐。这里我们选择在手机端实现获取这些信息。尤其是对于作者这样的设备负责人而言&am…

jsf 项目_您将在下一个项目中使用JSF吗?

jsf 项目上周有一篇很棒的stackoverflow博客文章,主题是“ Javascript框架的残酷生命周期” 。 这篇文章是关于Javascript UI框架(angularjs,angular,jquery和react)的流行和流行的速度。 这篇文章的关键指标是每月关于…

查询varchar实际大小_微服务和VUE(11): mybatis 动态查询

1. 新建class表和student表:CREATE TABLE class ( class_id varchar(20) NOT NULL, class_name varchar(50) DEFAULT NULL, headmaster_name varchar(20) DEFAULT NULL, headmaster_tel varchar(20) DEFAULT NULL, PRIMARY KEY (class_id)) ENGINEInnoDB …

Linux 如何安装程序的源代码软件包/源码程序包/源码包?

文章目录一、安装源码包的三个步骤(一)执行命令 configure,进行配置/检测(二)执行命令 make,编译源码(三)执行命令 make install,安装软件二、源码包安装示例&#xff08…

如何取消ie.html,IE浏览器安全警告怎么关闭

部分用户在使用IE浏览器打开某些页面的时候,可能会出现一个“安全警告”的对话框,虽然影响不大,但是每次出现都让人很烦闷,这个时候你就可以根据下面的操作去关闭这个功能。自从百度近日开启了HTTPS安全网页功能之后,每…

sql 计算两个小数乘积_数学篇|学会这些数学计算技巧,想不满分都难!

计算是小学数学的基础,四则运算和混合运算是计算要考察的重点。在这里我们总结了小学用到的所有计算定律和简便方法,包括运算定律、运算法则、运算顺序和速算技巧四大部分,帮助小学生牢固掌握数学知识点。先赞后看,收获满满&#…

mysql两个字段相减_MySQL 中NULL和空值的区别?

作为后台开发,在日常工作中如果要接触Mysql数据库,那么不可避免会遇到Mysql中的NULL和空值。那你知道它们有什么区别吗?学不动了,也不想知道它们有什么区别。大兄弟,不行啊,要面试!前些天我的好…

做好计划事半功倍论文_Picocli 2.0:事半功倍

做好计划事半功倍论文介绍 Picocli是一个单文件命令行解析框架,它使您几乎不需要任何代码即可创建命令行应用程序。 使用Option或Parameters注释应用程序中的字段,picocli将分别使用命令行选项和位置参数填充这些字段。 例如: Command(name …

srp unity_SRP是骗局

srp unity根据罗伯特马丁 ( Robert Martin)的 《 清洁法 》( Clean Code) ,“ 单一责任原则 ”意味着“一个阶级应该只有一个改变的理由”。 让我们尝试解密这个模糊的语句,看看它如何帮助我们设计更好的面…