命令与生命周期挂钩
Web+提供了自定义启停命令和生命周期挂钩的能力,您可以很方便地通过设置命令来管理用户的服务进程,以及通过设置生命周期挂钩来简化部署、监控、运维和治理等应用生命周期管理操作。
命令
通常情况下,Web+对于每种技术栈类型设置了默认的启动与停止命令,Web+默认使用Systemd来管理用户的服务进程。您也可以在Web+控制台或Procfile中修改启停命令。
命令设置说明
- 启动命令需一直在前台运行,命令执行结束时服务即停止。
- 建议停止命令始终包含systemctl stop wpweb,以确保可以正常停止服务,可在此命令前后增加自定义的处理的部分。
- 启动命令的工作目录为应用部署包的根目录。
- 启动命令将以admin用户身份执行。
- 如果部署包内提供了Procfile,则指定的启动命令将不会生效。
生命周期挂钩
在Web+执行实例变更操作时,可以触发特定的生命周期挂钩,您可以在这些生命周期挂钩上设置执行的命令或脚本,来完成常用操作,例如修改配置文件,注册/注销服务,发送通知,下载文件等。
- PostPrepareEnv:环境初始化后此挂钩将被执行,该挂钩只会对每个实例运行一次,执行该挂钩时不可读取环境变量。
- PreInstallStack:安装或变更技术栈所含基础软件前此挂钩将被执行,执行该挂钩时不可读取环境变量。
- PostInstallStack:安装或变更技术栈所含基础软件前后挂钩将被执行,执行该挂钩时不可读取环境变量。
- PrePrepareApp:应用发生变更(如部署包版本发生变化)前该挂钩将被执行,执行该挂钩时不可读取环境变量。
- PostPrepareApp:应用发生变更(如部署包版本发生变化)后该挂钩将被执行,执行该挂钩时可以使用环境变量。
- PreStart:服务启动前该挂钩将被被执行,执行该挂钩时可以使用环境变量。
- PostStart:服务启动后该挂钩将被被执行,执行该挂钩时可以使用环境变量。
- PreStop:服务停止前该挂钩将被执行,执行该挂钩时可以使用环境变量。
- PostStop:服务停止后该挂钩将被执行,执行该挂钩时可以使用环境变量。
生命周期挂钩的运行过程示意图如下。
注意 上图中的安装基础软件等过程,不是每一次执行左侧的操作流程时都会执行。
生命周期挂钩说明
- 生命周期挂钩将以root用户身份执行。
- 生命周期挂钩的执行失败将导致变更失败并终止,如果您不希望生命周期挂钩影响变更流程,可以在命令行的末尾添加;exit 0来保证执行始终成功。
- 部分生命周期挂钩中可以使用环境变量,可用的环境变量请参见环境变量。
- 生命周期挂钩需要在2分钟内执行完成,否则会导致变更失败并终止,如果有超长的任务需要处理,建议通过后台执行脚本的方式来完成。
- 生命周期挂钩的工作目录为/opt/webplus/data/envdata/wproot/,您可以通过cd命令来切换到指定的目录下。
- 建议在生命周期挂钩中使用命令或脚本的绝对路径。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论