
# 配置生命周期
CAE提供了回调函数，在容器生命周期的特定阶段执行调用，比如容器在停止前希望执行某项操作，就可以注册相应的钩子函数。
#### 操作步骤
1. [登录CAE控制台](https://console.huaweicloud.com/cae/)。
2. 在左侧导航栏中选择"组件配置"。
3. 在"组件配置"页面上方的下拉框中选择需要操作的组件。 
   图1选择组件   
   ![](https://support.huaweicloud.com/usermanual-cae/zh-cn_image_0000001743714853.png "点击放大")
   
   
4. 单击"生命周期管理"模块中的"编辑"按钮。
5. 在右侧弹框中可选择配置"启动后处理"和"停止前处理"，两者可同时开启。 
   - 启动后处理：容器启动后触发，详情请参见[表1]。
   
   - 停止前处理：容器停止前触发。设置停止前处理，确保升级或实例删除时可提前执行必要的清理任务。详细请参见[表2]。
     ![](https://support.huaweicloud.com/usermanual-cae/public_sys-resources/note_3.0-zh-cn.png)
     如果"启动后处理"配置为while死循环，同时还配置了健康检查，可能会导致容器健康检查不通过，进而导致组件部署或升级失败。
     
   
   
    表1启动后处理-参数说明 
   | 参数   | 配置项参数                                                                                                                                                                                                                                                                                                                                                                                                                    |
   |:---|:---|
   | 执行命令 | 单击"![](https://support.huaweicloud.com/usermanual-cae/zh-cn_image_0000002240623785.png)新增执行命令"。 在容器中执行指定的命令，配置为需要执行的命令。命令的格式为Command Args\[1\] Args\[2\]...（Command为系统命令或者用户自定义可执行程序，如果未指定路径则在默认路径下寻找可执行程序），如果需要执行多条命令，建议采用将命令写入脚本执行的方式。**不支持后台执行和异步执行的命令。** 例如，您需要利用启动后处理写文件，则请在命令行分别输入以下命令： ``` /bin/bash -c echo 'Hello, postStart' > /lifecycle.txt ``` |
      
   图2配置启动后处理命令   
   ![](https://support.huaweicloud.com/usermanual-cae/zh-cn_image_0000001683935106.png "点击放大")
    表2停止前处理-参数说明 
   | 参数   | 配置项参数                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   |:---|:---|
   | 执行命令 | 单击"![](https://support.huaweicloud.com/usermanual-cae/zh-cn_image_0000002154326220.png)新增执行命令"。 在容器中执行指定的命令，配置为需要执行的命令。命令的格式为Command Args\[1\] Args\[2\]...（Command为系统命令或者用户自定义可执行程序，如果未指定路径则在默认路径下寻找可执行程序），如果需要执行多条命令，建议采用将命令写入脚本执行的方式。 例如，您需要利用停止前处理优雅关闭Nginx，则请在命令行分别输入以下命令： ``` /bin/bash -c nginx -s quit;while killall -0 nginx;do sleep 1;done ``` |
      
   图3配置停止前处理命令   
   ![](https://support.huaweicloud.com/usermanual-cae/zh-cn_image_0000001740022809.png "点击放大")
   
   
6. 单击"确定"，生命周期配置完成。
7. 使配置生效。 
   - 如已完成组件部署，单击页面上方"生效配置"。在右侧弹框中确认配置信息，并单击"确定"，使配置生效。
   
   - 如未完成组件部署，单击页面上方"配置并部署组件"，在弹框中单击"确定"，待组件部署执行完成后，配置生效。
   
   
   
   
 
#### 更多参考链接
- [利用启动后处理写文件](https://support.huaweicloud.com/bestpractice-cae/cae_05_0037.html)
- [利用停止前处理优雅关闭Nginx](https://support.huaweicloud.com/bestpractice-cae/cae_05_0034.html)
 
