Linux-Mint
根本無法讓 rc.local 自動執行
所以我一直試圖讓
/etc/rc.local
腳本執行,而對於我的生活,似乎沒有任何效果。我可以使用 手動執行它service rc.local start
,它只是將“hi”回顯到我的主目錄中的一個文件,但在重新啟動時它不會執行。似乎設置了所有正確的權限,並且連結存在於正確的 rc#.d 目錄中。供參考,以下是相關資訊:# ls -l /etc/rc.local -rwxr-xr-x 1 root root 45 Apr 12 21:10 /etc/rc.local # ls -l /etc/init.d/rc.local -rwxr-xr-x 1 root root 812 Apr 12 21:00 /etc/init.d/rc.local # for i in {0..6}; do cd rc$i.d ; pwd; ls -l |grep rc.local; cd ..; done /etc/rc0.d lrwxrwxrwx 1 root root 18 Apr 12 20:53 K20rc.local -> ../init.d/rc.local /etc/rc1.d lrwxrwxrwx 1 root root 18 Apr 12 20:53 K20rc.local -> ../init.d/rc.local /etc/rc2.d lrwxrwxrwx 1 root root 18 Apr 12 20:53 S20rc.local -> ../init.d/rc.local /etc/rc3.d lrwxrwxrwx 1 root root 18 Apr 12 20:53 S20rc.local -> ../init.d/rc.local /etc/rc4.d lrwxrwxrwx 1 root root 18 Apr 12 20:53 S20rc.local -> ../init.d/rc.local /etc/rc5.d lrwxrwxrwx 1 root root 18 Apr 12 20:53 S20rc.local -> ../init.d/rc.local /etc/rc6.d lrwxrwxrwx 1 root root 18 Apr 12 20:53 K20rc.local -> ../init.d/rc.local # cat /etc/rc.local #! /bin/bash echo hi > ~user/test exit 0
我試過刪除
/etc/rc.local
and/etc/init.d/rc.local
, runningupdate-rc.d rc.local remove
,然後恢復它們並update-rc.d rc.local defaults
像這個問題一樣執行:Rc.local does not execute。那沒有用。它在重新啟動或進入任何初始化級別後也不起作用。
#! /bin/sh -e
當 shebang 行讀取或時,它不起作用#! /bin/bash
。不過,如果我手動執行它,我可以讓/etc/rc.local
和/etc/init.d/rc.local
腳本回顯到不同的文件。所以我的問題是……我做錯了什麼,我怎樣才能讓 rc.local 執行?此外,雖然我不介意聽到替代方案(如暴發戶),但我只會接受一個向我展示(或幫助我找到)如何讓 rc.local 正常執行的答案(最好告訴我出了什麼問題)。
以下是有關其價值的一些附加資訊:
# dmesg | grep "Linux version" [ 0.000000] Linux version 3.5.0-17-generic (buildd@allspice) (gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1) ) #28-Ubuntu SMP Tue Oct 9 19:31:23 UTC 2012 (Ubuntu 3.5.0-17.28-generic 3.5.5) # cat /proc/version Linux version 3.5.0-17-generic (buildd@allspice) (gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1) ) #28-Ubuntu SMP Tue Oct 9 19:31:23 UTC 2012 # lsb_release -a No LSB modules are available. Distributor ID: LinuxMint Description: Linux Mint 14 Nadia Release: 14 Codename: nadia
問題是在這一行:
echo hi > ~user/test
~user
沒有像您預期的那樣擴展。rc.local
正在執行,但由於意外的擴展,它正試圖寫入它可能沒有權限的地方。請嘗試以下操作:
echo ~user/test > /dev/shm/test
然後檢查
/dev/shm/test
. 這將顯示rc.local
確實執行,以及它正在擴展~user
到什麼。雖然,我的建議是使用顯式路徑,而不是依賴外部環境。