在所有其他初始化脚本启动后运行 upstart

在所有其他初始化脚本启动后运行 upstart

我正在运行一个 CentOS6 实例,并且有一个依赖于 sshd 的 upstart 作业正在运行。但是当我启动该框时,该作业无法启动,我猜是因为 sshd 实际上还没有运行。有没有办法可以延迟 upstart 作业的启动,直到所有正常的 init 脚本都已启动?

答案1

我最终搞清楚了这一点。CentOS6 使用 upstart 作为其 init 程序,但它初始化的脚本/etc/init之一是rc.conf,它会启动老式的 rc 脚本。因此,如果您需要您的程序在这些脚本之后启动,您可以输入:

start on started rc stop on stopped rc

在你的 upstart 脚本中你应该一切顺利。

答案2

您可以使用脚本中的 pidfile /var/run/sshd.pid 检查进程 sshd,以确保它正在运行。

  if [ -f /var/run/says.pid]; then
     "do what you want with your script"
  fi

如果 pid 尚未出现,您可以在其中放置逻辑,以便在检查 sshd 后进入睡眠状态。

答案3

只需将您的脚本添加到 /etc/rc.d/rc.local。您的脚本将在所有其他初始化脚本之后执行。

相关内容