延遲初始化腳本直到另一個進程完成?

延遲初始化腳本直到另一個進程完成?

我正在運行 Debian Jessie。在啟動過程中我想讀取一些用戶輸入。這是透過 /etc/init.d/ 中的自訂腳本和運行等級目錄中的符號連結來完成的。現在我希望 kdm由另一個初始化腳本啟動的 ,僅在我的自訂腳本完成後才啟動。

我雲端透過添加類似的東西來實現這一點

while test -e /tmp/kdm-boot-lock
do
    echo "waiting for lock-file to be deleted by custom-script"
    sleep 1
done

到/etc/init.d/kdm

但我更喜歡一個不更改外部文件的解決方案(可能會因更新而更改)。

所以問題是:如何防止kdm在自訂腳本完成之前啟動不同的(未更改的)初始化腳本 ( )?

答案1

kdm由於您使用的是 initscripts,因此推遲直到自訂腳本完成的正確方法是kdm在 LSB 標頭中聲明自訂腳本的依賴項:

# Required-Start: ... yourscript

kdm初始化腳本中,以及

# Provides: yourscript

在您的自訂初始化腳本中。

為了避免 initscript 的變更kdm在升級時遺失,您可以將其 LSB 標頭複製到(具有相同名稱)insserv中的覆蓋檔案中/etc/insserv/overrides,然後對其進行編輯。

相關內容