
我在 ubuntu 上有一個腳本,我將其放入 /etc/init.d 中。它有 0755 權限,我可以手動運行它,既執行它又採購它,效果很好。我在 /etc/rc3.d 和 /etc/rc5.d 中都有符號鏈接,都名為 S01raid,都指向 init.d 腳本。然而,當我重新啟動機器時,該腳本似乎沒有運行。我沒有看到陣列已安裝或甚至正在運行,也沒有看到監視器守護程式在 ps -A 輸出上運行
我在這裡缺少什麼?
腳本內容:
#!/bin/sh -e
modprobe raid5
mdadm --assemble --scan
mdadm --monitor --scan --daemonize --delay 120 --program /etc/mdadm/scram.sh
mount -t xfs /dev/md0 /mnt/
答案1
我建議您遵循標準工具在啟動時運行腳本。
看著這個答案對於類似的問題,我列出了要遵循的步驟。另外,正如另一個用戶在該問題上提到的那樣,出於測試目的,我只需將命令放在 /etc/rc.local 中的「exit 0」之前。
您還需要確保它所依賴的任何服務在運行時都已啟動。檢查 /var/log 中的日誌是否有任何錯誤訊息。
答案2
「S01」意味著它在啟動過程的早期運行。我要做的第一件事是確保沒有需要先運行的東西稍後運行(具有更高的數字)。
在我的 Ubuntu 系統上,sysklogd 是 S10,mdadm 是 S25,因此至少將其設定為高於這些值,以便您可以查看它是否記錄了任何內容。