首頁 > 軟體

Linux開機啟動rc.local不執行分析

2020-06-16 17:25:24

在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這樣的格式。

本文永久更新連結地址http://www.linuxidc.com/Linux/2016-12/138665.htm


IT145.com E-mail:sddin#qq.com