首页 > 代码库 > Linux开机启动rc.local不执行分析

Linux开机启动rc.local不执行分析

    在linux中我们常常在/etc/rc.local写入执行命令或脚本,来实现系统开机启动功能。但偶尔也会遇到没有执行的情况,这时候就要来进行调试了。

    以下就是调试步骤:

   1、确定rc.local具有可执行权限,直接/etc/rc.local看看能不能执行。因为rc.local中已经写明了“In order to enable or disable this script just change the executionbits.”, 要让它生效只需要改变它的执行位。

   2、看看当前系统的runlevel,再去对应rcX.d看看它的启动顺序,是不是有Src.local的启动项在这里面。

  


    3、确认了前面两项,我们就可以来调试rc.local的内容了,首先第一行,默认一般是#!/bin/sh -e,查下shell编程就知道,这个是用的sh解释器,-e参数代表出错后直接退出不执行后面内容。

#!/bin/sh  -e
echo yes
ls /
echo no
ls /ahfjkasf
echo hahaha

       执行以上内容就会发现,hahaha是不会打印的。同时我们也要确认ls -l  /bin/sh,来确认sh是对应的哪个解释器,因为在ubuntu中,sh是链接在dash上。

       因此在确认我们使用的SHELL解释器后,可以将-e 改成 -x或是在第二行加入set -x,这样就能将整个rc.local的执行过程打印到syslog中了,然后去查找出错的原因。

       在执行某些脚本使用普通的重定向可能不生效,可以试试1 >>/tmp/xxx.log 2>&1这样的格式。

   

本文出自 “DanielQu” 博客,请务必保留此出处http://qujunorz.blog.51cto.com/6378776/1863416

Linux开机启动rc.local不执行分析