Linux

在 Debian 7.5 上,rc.local 不會在啟動時執行

  • July 19, 2014

我正在努力弄清楚為什麼 rc.local 不會在啟動時執行。

該文件本身是可執行的,它是從 /etc/rc2.d 呼叫

的,從命令行時該文件也不會返回任何錯誤。

任何想法還有什麼要檢查以確定為什麼不執行?

既然您說rc.local手動執行它時會正確執行,那麼立即想到的兩件事是:

  • 啟動時出現問題,但在您自己執行時會起作用。也許您正在嘗試執行引導時不在 PATH 中的程序。
  • /etc/rc.local真的沒有在啟動時執行。

在這兩種情況下,我要做的第一件事就是放一些類似的東西

/usr/bin/printenv > /var/tmp/rc.local-$(date +%T)

作為行rc.local後的第一#!/bin/sh行。這將在每次執行時將環境變數列印到帶時間戳的文件中。(不要寫入文件,/tmp因為它在啟動時會被清空。)/etc/rc.local手動執行并快速查看生成的文件(它將被命名為/var/tmp/rc.local-21:14:35)。然後重新啟動系統。

您應該有兩個/var/tmp可以比較的文件(或任何地方)。如果您只是第一個文件,/etc/rc.local則不會真正被呼叫。如果您有兩個文件,請比較它們。後者將有一個非常稀疏的環境和 PATH。查看您的rc.local腳本,看看您嘗試執行的任何內容是否取決於不在引導時環境中的某個變數或 PATH 的某些組件。如果您發現了什麼,請將必要的初始化添加到rc.local.

引用自:https://serverfault.com/questions/594745