Linux启动和关闭时自动执行的所有脚本文件


原文地址:http://www.cnblogs.com/armlinux/archive/2010/08/11/2390949.html

     Linux使用的是基于运行级(run-levels) 概念的称为SysVinit的专用启动工具。SysVinit(从现在开始我们称之为"init")以运行级的模式来工作,一般有7(从06)个运行级(实际上可以有更多的运行级,但都是用于特殊情况而且一般使用不到。参见init(8)以获得更多信息),每个运行级对应于一套设定好的任务,当启动一个运行级的时候, 计算机就需要执行相应的任务。默认的运行级是 3,下面是对不同运行级的描述:

0: 关闭计算机
1: 
单用户模式
2: 
无网络多用户模式
3: 
有网络多用户模式
4: 
保留作自定义,否则同运行级
5: 
同运行级4,一般用于图形界面(GUI)登录(如 X的 xdm 或 KDE的 kdm) 
6: 
重启动计算机

       用来改变运行级别的命令是init <runlevel>,在这里 <runlevel>是目标运行级别。

   在 /etc/rc.d 目录下有很多类似 rc?.d (这里? 是运行级别的数值)和 rcsysinit.d 的目录,里面都包含许多符号链接,其中一些以 K 字母开头,另外一些以 S 字母开头,这些链接名在首字母后面都跟着两个数字。 这个 K的含义是停止 (kill)一个服务, S的含义是启动一个服务。而数字则确定这些脚本的启动顺序,从00 到 99(数字越小执行的越早)。当 init 转换到其它运行级时,一些相应的服务会停止, 而另一些服务则会启动。

     真正的脚本在 /etc/rc.d/init.d 目录下,它们完成实际工作, 符号链接都是指向它们的。停止脚本的链接和启动脚本的链接都指向 /etc/rc.d/init.d 目录下的同一个脚本。这是因为调用这些脚本时可以使用不同的参数,例如 start, stop, restart, reload,和 status。当调用 K链接时,相应的脚本用 stop参数运行;当调用S 链接时,相应的脚本用start 参数运行。

     上面的说明有一个例外,在 rc0.d 和 rc6.d 目录下以 S 开头的链接不会启动任何东西,而是用stop参数调用,来停止某些服务。 这背后的逻辑是, 当用户要重启或关闭系统的时候,不会要启动什么服务, 只会要系统停止。

以下是脚本参数的描述:

start
启动服务。
stop             停止服务。 restart
关闭服务,然后再启动。
reload
该服务的配置已更新。如果修改了某个服务的配置文件,又不必重启这个服务的时候,可以使用这个参数
status
显示服务的状态,如果服务正在运行,会显示该服务进程的PID

     您可以自由修改启动进程工作的方式。我们这里给出的文件只是它们怎样工作的一个示例而已。


Linux的开机的整个过程如下:

  1. 开电脑电源,BIOS并进行主的自我测试

  2. 透过 BIOS取得第一个可开机装置,读取主要开机区(MBR)取得开机管理程式;

  3. 透过开机管理程式的设定,取得kernel并载入记忆体且侦测系统硬体;

  4. 核心主动呼叫 init程式;

  5. init程式开始执行系统初始化(/etc/rc.d/rc.sysinit)

    执行/etc/init.d/functions,设置环境变量等。

  6. 依据 init的设定进行daemonstart (/etc/rc.d/rc[0-6].d/*)

    依次执行脚本,启动服务。关机时依次关闭服务。

  7. 载入本机设定 (/etc/rc.d/rc.local)

     /etc/profile文件。这个文件是系统启动时,任何用户登录时执行的文件。任何用户登录前,root用户也会执行一遍。

     ~/.bash_profile文件。这个文件每个用户都有。它在用户登录时自动执行,拥有用户的权限。它export的环境变量对该用户随后启动的进程都有效。

 

     因此:

     如果用户需要开机自动以root权限执行一些脚本,那么最好的方法是编辑/etc/rc.d/rc.local文件。

     如果每一个用户登录时都应该执行的脚本,如设置一些环境变量,那么应该修改/etc/profile文件。或者将脚本放置在/etc/profile.d/目录下,/etc/profile文件会去调用这些脚本。

     如果某一个特定用户登录时应该执行特定的脚本,如设置该用户特定的环境变量,应该修改~/.bash_profile文件。


关于如何编写/etc/init.d下的脚本参考:http://blog.chinaunix.net/uid-26000296-id-3986914.html


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值