`
hanyi366
  • 浏览: 284152 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

阅读更多

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

转自:http://blog.csdn.net/acs713/article/details/7322082

     以下内容是作者自己的翻译版本,如需转载到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自启动设置.txt

    /etc/rc.d/init.d 目录 1. 关于linux的启动 2. 关于rc.d 3. 启动脚本示例 4. 关于rc.local 5. 关于bash启动脚本 6. 关于开机程序的自动启动 1. 关于linux的启动 init是所有进程的顶层 init读取/etc/...

    thin-rc.d:简单的FreeBSD rc脚本精简

    '/etc/rc.d/thin' : '/etc/init.d/thin' 薄的rubygem-thin也不提供rc.d脚本。安装下载rc.d脚本,使其可执行,将其放置在/usr/local/etc/rc.d/ ,获利$$。 mkdir -p /usr/local/etc/rc.dcd /usr/local/etc/rc.d/...

    linux下启动mysql服务

    启动是什么 /rc.d/init.d/ start 这很简单,但是后来越学越多,系统自带的 mysql,有的是版本太低,有的是与 自己想要装的web服务需要的低版本的mysql 后来自己学着以tar的方式安装 mysql,我的mysql装在/usr/...

    解决centos7 开机/etc/rc.local 不执行的问题

    最近发现centos7 的/etc/rc.local不会开机执行,于是认真看了下/etc/rc.local文件内容的就发现了问题的原因了 #!/bin/bash # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES # # It is highly advisable to create...

    SUSE Linux下开机自动运行脚本命令的方法

    以openSUSE 11和10 sp2启动文件的设置为例,开机设置程序自动执行

    Centos7.3开机自动启动或执行指定命令操作

    在centos7中,/etc/rc.d/rc.local文件的权限被降低了,没有执行权限,需要给它添加可执行权限。 chmod +x /etc/rc.d/rc.local ...2、建立一个软连接到/etc/rc.d/init.d目录下 ln -s /springboot/biz /etc/

    如何在Linux实现自动运行程序?

    .d) 目录下的脚本文件,可以使init自动启动其它程序。  /etc/rc:This file is responsible for starting/stopping services when the runlevel changes  例如:  编辑 /etc/rc.d/rc.local 文件,在文件末...

    Y460A关闭独立显卡脚本

    分别将vgaswitcher放入/usr/local/sbin/下,vgaswitch放入/etc/init.d/下, 然后执行命令:sudo chmod +x /usr/local/sbin/vgaswitcher /etc/init.d/vgaswitch && sudo update-rc.d vgaswitch defaults

    Linux FTP服务搭建

    [root@localhost ~]#/etc/rc.d/init.dvsftpd restart 重启vsftpd服务: [root@localhost ~]#/etc/rc.d/init.dvsftpd condrestart vsFTPd的配置 在vsftpd.conf文件中配置监听地址 listen_address=ip address 在...

    CentOS6.9下NFS服务安装配置教程

    服务器环境:CentOS6.9 Linux 2.6.32-696.el6.x86_64 安装NFS服务 nfs客户端和服务端都只需要安装nfs-utils包即可,并且yum安装时会连带...# tail -2 /etc/rc.local /etc/init.d/rpcbind start /etc/init.d/nfs sta

    ARM_Linux启动分析.pdf

    一般情况下,rc启动脚本都位于/etc/rc.d目录下,rc.sysinit中最常见的动作就是激活交换分区,检查磁盘,加载硬件模块,这些动作无论哪个运行级别都是需要优先执行的。仅当rc.sysinit执行完以后init才会执行其他的...

    iotclnt:物联网客户端是一个测试项目,用于准备树莓设备作为独立单元运行

    安装所有节点依赖cd /home/pi/iotclnt/ 安装第 6 步:将守护程序脚本复制到 /etc/init.d cp /home/pi/iotclnt/iotclnt /etc/init.d cd /etc/init.d chmod +x iotclnt第 7 步:将守护进程添加到 rc.local 须藤纳米 /...

    lunch_r58_20160906.7z

    ./octopus_perf.mk: device/softwinner/octopus-perf/init.recovery.sun8i.rc:root/init.recovery.sun8i.rc \ ./octopus_perf.mk: device/softwinner/octopus-perf/ueventd.sun8i.rc:root/ueventd.sun8i.rc \ ./...

    lunch_cb5801_r58_20160907.7z

    ./octopus_perf.mk: device/softwinner/octopus-perf/init.recovery.sun8i.rc:root/init.recovery.sun8i.rc \ ./octopus_perf.mk: device/softwinner/octopus-perf/ueventd.sun8i.rc:root/ueventd.sun8i.rc \ ./...

    Linux学习之路——进程调度和服务管理

    笔记目录1 进程调度和服务管理1.1 进程调度1.2 进程调度管理命令1.2.1 命令at可以使用的时间关键字1.2.2 命令atq1.2.3 命令atrm1.2.4 命令 crontabcron配置文件cron配置1.3 服务的概念服务脚本:/etc/rc.d/init.detc...

    管理MySQL数据库系统.doc

    1、数据库目录 /var/lib/mysql/ 2、配置文件 /usr/share/mysql(mysql.server命令及配置文件) 3、相关命令 /usr/bin(mysqladmin mysqldump等命令) 4、启动脚本 /etc/rc.d/init.d/(启动脚本文件mysql的目录) 五、...

    Squid中文权威指南

    3.4 Configure脚本....................................................................................................................5 3.4.1 configure选项.................................................

    rhce系统管理ppt教程

    /etc/rc.d/rc.local 虚拟控制台 第四单元 用户管理 检查用户身份 添加用户 更改/删除用户 /etc/passwd文件 passwd文件详细 Home directory /etc/shadow shadow文件详细 组管理 组文件 强制位与冒险位 强制位对文件的...

    简要分析linux系统的启动过程

    接触linux系统运维已经好几年了,常常被问到linux系统启动流程问题,刚好今天有空来梳理下这个过程: 一般来说,所有的操作系统的启动流程基本就是: ...8)执行/etc/rc.d/rc.local 9)启动mingetty,进入系统登陆界面

    在Linux上用forever实现Node.js项目自启动

    最早,我想着试试在/etc/rc.local中增加一句forever start xxx看看,结果发现Ubuntu(其他系统一样)就不鸟我,主要矛盾就是mongodb使用这种方式就可以跑起来,forever就不行,无奈之下,还是从/etc/init.d的角度去...

Global site tag (gtag.js) - Google Analytics