如何在 Debian 啟動時延遲服務啟動?
所以準確地說,我試圖在我的樹莓派 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 所需的服務。