在启动或禁用并行启动脚本的情况下如何安装Linux应用程序?

我们开发一个Linux应用程序来处理不同的RedHat / SUSE发行版。 这个应用程序(即守护进程)预计将在启动时自动运行,因此我们将启动脚本放在/etc/init.d/目录中,并在运行级目录(../rc.d/rc5.d/)中创build符号链接实例)。 如果用户删除我们的应用程序,我们的卸载脚本将删除我们所有的东西,包括符号链接。 如果操作系统不提供并行脚本运行,它工作正常。 如果启用并行运行,我们需要另一个解决scheme。 例如,在SLES 10中,我们在/ etc / sysconfig / boot中:

# Run all scripts or rather start/stop all services # which are independent from each other in parallel. RUN_PARALLEL="yes" 

据我们了解,我们必须注册我们的脚本insserv实用程序。 在这种情况下,系统分析一个脚本头文件,并创build/删除它自己的符号链接。 如果这是真的,如何组织安装/卸载我们的应用程序,以涵盖并行和顺序启动脚本运行? 看起来当并行运行被禁用或启用时,我们应该有不同的performance。 在第一种情况下,我们应该关心符号链接。 在第二种情况下,我们应该委托给insserv。 这是正确的方法? 如果是这样,我们应该通过检查/ etc / sysconfig / boot来分析是否启用了并行运行? 它看起来不可靠,因为在不同的Linux发行版中,它可能是不同的位置和不同的参数。

安装/卸载Linux应用程序的最佳做法是什么?涵盖并行和顺序系统启动的最佳做法?

谢谢,

让insserv为你创build符号链接。 当使用insserv的时候,你也可以添加依赖到你的脚本头文件,这样insserv知道什么时候在特殊的运行级别启动和停止你的脚本。 这是顺序和并行执行所必需的。 尝试与lsb兼容。 这里是一个简短的例子:

 # Following lines are in conformance with LSB 1.2 spec ### BEGIN INIT INFO # Provides: your shoort app name here # Required-Start: what should start before your app, eg network # Required-Stop: what should stop before your app stops # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Description: longer about ### END INIT INFO