無法在 init.d 檔案中取得啟動時執行的程式碼

無法在 init.d 檔案中取得啟動時執行的程式碼

已經為此工作了 4 個多小時。我想做的就是讓以下程式碼在啟動時運行:

IP_ADDR=$(/sbin/ifconfig eth0 | /bin/sed -rn 's/^.*inet addr:(([0-9]+\.){3}[0-9]+).*$/\1/p')
/usr/bin/wget -q -O /dev/null http://example.com/private/RPi_IP.php?send=${IP_ADDR}

將 example.com 替換為我的網站。由於某種原因,每次啟動時我都會收到一條訊息,表示我製作的啟動文件失敗。我不知道該怎麼辦。我什至嘗試將此程式碼寫入其他程式的其他啟動檔案中,但它仍然導致它失敗。這段程式碼真的有什麼問題嗎?作為獨立的 bash 腳本,它工作得很好,但在啟動時卻不行。

在我製作了放入此文件的文件後,我總是這樣做:

chmod +x file
sudo update-rc.d file defaults

我上面做的事情有問題嗎?如果有用的話,我正在使用帶有 Raspbian 的 Raspberry Pi。

答案1

如果您只需要它在重新啟動時運行,我會使用 cron,而不是將其放入啟動腳本。
@reboot /path/to/file將使其在啟動時運行。
init.d 中的腳本需要特定的行和諸如此類的東西,如果您不需要所有這些東西,那麼 cron 就可以很好地完成工作。

相關內容