2021-05-12 14:32:11
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
相關文章