

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 排查 `cfn-hup` 未运行时的集群更新超时问题
<a name="troubleshooting-v3-cluster-update-timeout"></a>

`cfn-hup` 帮助程序作为一个进程守护程序，旨在检测资源元数据中出现的变更，并在检测到变更时运行用户指定的操作。通过这种方式，您可以通过 `UpdateStack` API 操作对您正在运行的 Amazon EC2 实例进行配置更新。

目前，`cfn-hup` 进程守护程序由 `supervisord` 启动。但在启动后，`cfn-hup` 进程将脱离 `supervisord` 控制。如果 `cfn-hup` 进程守护程序因外部因素终止，它不会自动重启。如果`cfn-hup`未运行，则在集群更新期间， CloudFormation 堆栈会按预期启动更新过程，但更新过程未在头节点上激活，堆栈最终会进入超时状态。从集群日志 `/var/log/chef-client` 中，您可以看到从未调用过更新食谱。

**失败时检查并重启 `cfn-hup`**

1. 在头节点上，检查 `cfn-hup` 是否正在运行：

   ```
   $ ps aux | grep cfn-hup
   ```

1. 在头节点上检查 `cfn-hup` 日志 `/var/log/cfn-hup.log` 和 `/var/log/supervisord.log`。

1. 如果 `cfn-hup` 未运行，请尝试通过运行以下命令进行重启：

   ```
   $ sudo /opt/parallelcluster/pyenv/versions/cookbook_virtualenv/bin/supervisorctl start cfn-hup
   ```