理解Linux系统/etc/init.d目录和/etc/rc.local脚本

3人阅读 评论(0) 收藏 举报
分类:


 一、关于/etc/init.d

     如果你使用过linux系统,那么你一定听说过init.d目录。这个目录到底是干嘛的呢?它归根结底只做了一件事情,但这件事情非同小可,是为整个系统做的,因此它非常重要。init.d目录包含许多系统各种服务的启动和停止脚本。它控制着所有从acpid到x11-common的各种事务。当然,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能够派上用场的地方了!(配合chkconfig命令来看,怎么动态添加rc#.d的入口文件)

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

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

     /etc/init.d/command 选项

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

  • start
  • stop
  • reload
  • restart
  • force-reload

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

     

         /etc/init.d/networking stop

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

        /etc/init.d/networking restart

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

       

  • networking
  • samba
  • apache2
  • ftpd
  • sshd
  • dovecot
  • mysql

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

 二、关于/etc/rc.local

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

          /etc/init.d/samba start

     这样就成功的解决了samba服务异常的问题。

 

 三、总结

         Linux是灵活的。正因为它的灵活性,我们总是可以找到许多不同的办法来解决同一个问题。启动系统服务的例子就是一个很好的佐证。有了/etc/init.d目录下的脚本,再加上/etc/rc.local这个利器,你可以放心的确保你的服务可以完美的启动和运行。

    本文英语版本来自:http://www.ghacks.net/2009/04/04/get-to-know-linux-the-etcinitd-directory/

     以下内容是作者自己的翻译版本,如需转载到CSDN外其他网站,请注明本文链接。

 一、关于/etc/init.d

     如果你使用过linux系统,那么你一定听说过init.d目录。这个目录到底是干嘛的呢?它归根结底只做了一件事情,但这件事情非同小可,是为整个系统做的,因此它非常重要。init.d目录包含许多系统各种服务的启动和停止脚本。它控制着所有从acpid到x11-common的各种事务。当然,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权限或sudo权限。每个脚本都将被作为一个命令运行,该命令的结构大致如下所示:

     /etc/init.d/command 选项

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

  • start
  • stop
  • reload
  • restart
  • force-reload

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

     

         /etc/init.d/networking stop

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

        /etc/init.d/networking restart

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

       

  • networking
  • samba
  • apache2
  • ftpd
  • sshd
  • dovecot
  • mysql

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

 二、关于/etc/rc.local

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

          /etc/init.d/samba start

     这样就成功的解决了samba服务异常的问题。

 

 三、总结

         Linux是灵活的。正因为它的灵活性,我们总是可以找到许多不同的办法来解决同一个问题。启动系统服务的例子就是一个很好的佐证。有了/etc/init.d目录下的脚本,再加上/etc/rc.local这个利器,你可以放心的确保你的服务可以完美的启动和运行。

查看评论

Linux系列:Linux下/etc/rc.local与/etc/init.d的区别与联系

1. /etc/rc.local 这是使用者自定义开机启动程序,把需要开机自动运行的程序写在这个脚本里再完成 run level 3 的服务启动后, 如果我还有其他的动作想要完成时,举例来说, 我还...
  • lanxuezaipiao
  • lanxuezaipiao
  • 2014-03-24 11:08:52
  • 3067

Linux下/etc/rc.local与/etc/init.d的区别与联系

1./etc/rc.local 这是使用者自定义开机启动程序,把需要开机自动运行的程序写在这个脚本里再完成 run level 3 的服务启动后, 如果我还有其他的动作想要完成时,举例来说,...
  • sinat_35631101
  • sinat_35631101
  • 2016-07-25 20:06:10
  • 1731

ubuntu下/etc/rc.local和/etc/init.d/rc.local的区别

在ubuntu下要把一个程序加入开机启动,一般可以通过修改rc.local来完成,但ubuntu下有两个rc.local文件。分别是/etc/rc.local和/etc/init.d/rc.local...
  • u013401853
  • u013401853
  • 2017-05-02 11:42:55
  • 2677

/etc/rc.d文件目录详解

原文地址::http://blog.sina.com.cn/s/blog_414d78870102vqj5.html 相关文章 1、/etc/rc.d/rc与/etc/rc.d/init....
  • xqhrs232
  • xqhrs232
  • 2016-03-16 17:24:16
  • 549

总结openwrt下通过修改init.d和rc.d来创建自启动脚本的步骤

直奔主题,具体步骤如下: 1. 运行终端 2. cd /etc/init.d/    # 进入init.d目录 3. vim test 4. 在打开的test文件中加入以下内容: #!bi...
  • chounanwang
  • chounanwang
  • 2017-05-24 16:21:45
  • 1615

ORACLE自启动脚本

  • 2009年02月16日 18:25
  • 624B
  • 下载

Ubuntu 14.10保存设置亮度(/etc/rc.local无效时,测试可用)

彻底解决ubuntu保存亮度的问题,网上常见的使用/etc/rc.local保存亮度的方法,在ubuntu14.10里默认是无效的,跟dash无关。...
  • KakuroP
  • KakuroP
  • 2015-01-28 10:00:47
  • 1138

理解Linux系统/etc/init.d目录和/etc/rc.local脚本(转)

原链接;http://blog.csdn.net/acs713/article/details/7322082 本文英语版本来自:http://www.ghacks.net/2009/04/04...
  • qq_16996597
  • qq_16996597
  • 2017-11-28 22:00:00
  • 203

/etc/profile 和 /etc/rc.d/rc.local启动顺序

前几天装了AS4 ,想让Tomcat开机自动启动就在/etc/rc.d/rc.local中加入了/usr/local/tomcat/bin/startup.sh但是发现tomcat不能自动启动,后来发...
  • king2003ok
  • king2003ok
  • 2008-01-27 10:11:00
  • 3064

linux下/etc/rc.d目录的介绍及redhat启动顺序

init inittab rc0 rc1 rc2 rc3 rc5 rc6 rcS init.d init 系统启动超级进程 inittab 进程启动配置文件 rc0 - rc6 各启动级别的启动脚本 ...
  • huangjin0507
  • huangjin0507
  • 2015-05-26 10:24:11
  • 2654
    个人资料
    持之以恒
    等级:
    访问量: 12万+
    积分: 1927
    排名: 2万+