延迟初始化脚本直到另一个进程完成?

延迟初始化脚本直到另一个进程完成?

我正在运行 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,然后对其进行编辑。

相关内容