# 描述<a name="ZH-CN_TOPIC_0184808155"></a>

支持在容器的生命周期中，运行OCI标准hooks。包括三种类型的hooks：

-   prestart hook：在执行lcrc start命令之后，而在容器的1号进程启动之前，被执行。
-   poststart hook：在容器1号进程启动之后，而在lcrc start命令返回之前，被执行。
-   poststop hook：在容器被停止之后，但是在停止命令返回之前，被执行。

OCI hooks的配置格式规范如下：

-   path：格式是字符串，必须项，必须为绝对路径，指定的文件必须有可执行权限。
-   args：格式是字符串数组，可选项，语义和execv的args一致。
-   env：格式是字符串数组，可选项，语义和环境变量一致，内容为键值对，如："PATH=/usr/bin"。
-   timeout：格式是整数，可选项，必须大于0，表示钩子执行的超时时间。如果钩子进程运行时间超过配置的时间，那么钩子进程会被杀死。

hook的配置为json格式，一般存放在json结尾的文件中，示例如下：

```
{
        "prestart": [
            {
                "path": "/usr/bin/echo",
                "args": ["arg1", "arg2"],
                "env":  [ "key1=value1"],
                "timeout": 30
            },
            {
                "path": "/usr/bin/ls",
                "args": ["/tmp"]
            }
        ],
        "poststart": [
            {
                "path": "/usr/bin/ls",
                "args": ["/tmp"],
                "timeout": 5
            }
        ],
        "poststop": [
            {
                "path": "/tmp/cleanup.sh",
                "args": ["cleanup.sh", "-f"]
            }
        ]
}
```

