在 OpenSUSE 的 Sys-V 类型初始化脚本中使用 startproc、killproc 和 checkproc 的原因

在 OpenSUSE 的 Sys-V 类型初始化脚本中使用 startproc、killproc 和 checkproc 的原因

在 OpenSUSE 11.4sysvinit-tools包中包含startproc和二进制文件,根据文件和 OpenSUSE 文档,这些二进制文件killproc应该在 Sys-V 类型的初始化脚本中使用。这些二进制文件的想法是什么?难道不能用、、和其他类似工具实现与、和相同的功能吗?checkproc/etc/init.d/skeletonstartprockillproccheckprocnicesudosleep

答案1

我们先定义一下具体的程序: 启动过程

startproc:startproc 和 LSB 变体 start_daemon 检查指定可执行文件的所有进程,如果没有找到进程则启动它。 startproc不使用pid来搜索进程,而是使用相应程序的完整路径来识别可执行文件

杀进程

Killproc 向所有使用指定可执行文件的进程发送信号。如果未指定信号名称,则发送信号 SIGTERM。 Killproc 不使用 pid 向进程发送信号,而是使用相应程序的完整路径来识别可执行文件

检查过程

checkproc 检查正在运行的使用指定可执行文件的进程。 checkproc 不使用 pid 来验证进程,而是使用相应程序的完整路径来识别可执行文件。

Nice、sudo、sleep 不执行与上述程序相关的任何操作。

当然,您可以在任何脚本语言(例如 bash)或其他编译语言中从kill/start/checkproc 执行相同的逻辑。但这些程序的目的是向所有需要它的用户提供此功能,因此他们不必费心在不同的发行版和不同的操作系统上编写/重写相同的逻辑。

相关内容