在两个不同的目录中运行两个守护进程作业

在两个不同的目录中运行两个守护进程作业

我想编写一个脚本,在两个不同的目录中启动两个守护进程。此脚本应在前台运行,然后当我按 ctrl-c 时,脚本将退出并关闭两个守护进程。

假设两个守护进程是两个名为daemon1和 的可执行文件daemon2,它们分别需要启动的两个目录是dir1dir2

我该如何编写这样的脚本?

答案1

您可能需要查找适用于您的操作环境的脚本语言。如果这是类似 korn-shell 的东西,您可能会考虑捕获信号、在后台执行进程并查看最后一个 PID,以确定在捕获 SIG-INT 或类似内容时要终止什么。

编辑:更多细节

  • 在顶部,捕获 SIG INT 和 SIG HUP,让它们运行清理子程序
  • 当您启动每个守护进程时,将其置于后台,捕获其 PID 并将其推送到包装器脚本中的变量中。
  • 定期检查你的后台进程是否仍在运行。
    • 如果不是,请重新启动失败的程序并记录您所做的操作。
  • 让你的清理子程序检查每个 PID 是否对应一个活动的、正在运行的进程。
    • 如果确实如此,请终止 -9 该进程,并记录您执行的操作。
    • 如果没有,则取消定义该变量并记录您未找到预期的进程。


相关内容