Linux

如何在 Debian 啟動時延遲服務啟動?

  • October 9, 2015

所以準確地說,我試圖在我的樹莓派 2 上延遲“deluge-daemon”的啟動。不知何故,USB(NTFS)只在 X 伺服器啟動後自動掛載(我在 Raspbian 中使用預設的自動掛載)(雖然我什至不需要 X 伺服器)並且 Deluge 似乎比 USB 安裝早一些開始並且我遇到了權限問題,因為 USB 尚未安裝並且必須重新啟動 Deluge 才能開始工作適當地…

所以我嘗試降低優先級並僅在執行級別 5 上執行它:

sudo update-rc.d deluge-daemon start 20 5 . stop 80 0 1 6 .

它真的沒有幫助。我嘗試編輯 deluge-daemon 啟動腳本並添加一個

sleep 1m

在啟動腳本的啟動情況下。然後它可以工作並在 USB 已經掛載後被掛載,但問題是現在每次我嘗試啟動 deluge-daemon 服務時它都會變慢,所以每次我決定停止並啟動程序後都需要一分鐘手動…

任何幫助,將不勝感激。必須有一種方法可以在不影響一般啟動腳本的情況下延遲啟動…

您可以在睡覺前檢查 USB 是否已安裝。例如:

mount | grep -q /path/to/USB/stick/mountpoint || sleep 1m

僅當未安裝 USB 記憶棒時,它才會休眠 1 分鐘。

當你說:

所以我嘗試降低優先級並僅在執行級別 5 上執行它

我希望你沒有降低起始數字……因為那會適得其反!

數字越小,服務啟動越早:rc將依次執行 的內容,/etc/rcS.d/然後是 的內容/etc/rc?.d?即目前執行級別,並且/etc/rc*文件夾的內容是服務的 initscripts 的符號連結,其格式S??service_name為啟動腳本(其中rc將使用“start”參數執行)或K??service_name用於停止腳本(rc將使用“stop”參數執行)。

S??andK??中, the??是執行的位置,00 是第一個,99 是最後一個。當兩個或多個腳本具有相同的編號時,它們將按照服務名稱的字母順序執行。

話雖如此,如果你跑

sudo uptate-rc.d deluge-daemon start 99 5 . stop 80 0 1 6 .

或將rc符號連結重命名/etc/rc5.d/S??deluge-daemon/etc/rc5.d/S99deluge-daemon,deluxe-daemon 將是在執行級別 5 中啟動的最後一個(或最後一個)服務。如果將符號連結重命名為,S99Zdeluge-daemon則在啟動時更有可能讓它在最後一個執行。

如果可能的話,您當然可以使用此過程來嘗試獲取此 deluge-daemon 所需的服務。

引用自:https://unix.stackexchange.com/questions/235118