更新时间:2023-09-13 GMT+08:00

其它常见问题

服务正常启动,应用部署完成后,服务又异常退出

问题现象

部署应用中部署了启动服务的命令或脚本后,服务正常启动;部署应用完成后,服务又异常退出。

原因分析

该问题一般原因为未使用异步方式启动服务,部署应用完成后,启动服务的会话链接断开,即父进程结束,导致子进程也同步结束。

处理方法

使用异步方式启动服务,参考命令:

nohup ${command} > ${log_file} 2>&1 & 

其中,${command} 代表服务启动命令,${log_file} 代表服务启动日志,如果不希望输出日志文件,可以使用“/dev/null” 代替。

应用已经部署完成,但是服务停止失败

问题现象

部署停止服务的命令或脚本时,系统提示部署已完成,但服务停止失败。

原因分析

该问题一般原因为使用了异步方式停止服务,停止服务命令部署可能报错或者未部署完成。

处理方法

通常情况,结束服务不需要使用异步方式部署,需要使用同步方式部署结束命令。同步方式部署过程中如果命令报错,应用会提示错误信息。

应用一直在部署中,导致应用部署超时

问题现象

部署“执行shell命令”步骤后,应用一直在部署中,导致应用部署超时。

原因分析

  • 应用中的命令本身部署效率比较低,部署耗时比较长。
  • 脚本中包含了交互式的命令,命令部署过程中需要前台输入相关信息才会进一步部署。

处理方法

  • 在对应目标主机手工执行对应应用中的命令,查看脚本部署时长是否超过部署应用超时时间(30分钟)。
  • 查看命令中是否包含交互式命令,比如 read ,sudo,su,yum 等;如果无相关命令,可以在目标主机手工执行脚本检查。

目标主机上存在的命令,但是部署应用提示命令不存在

问题现象

目标主机上存在的命令,但是部署应用提示命令不存在。

原因分析

该命令对应安装目录未添加到 /etc/profile 环境变量文件中。

处理方法

  1. 登录目标主机,执行命令,查看命令的安装目录。
    type ${command} 
  2. 修改应用,使用绝对路径调用对应命令或者把命令安装目录添加到目标主机/etc/profile环境变量中。

shell脚本部署完成后未达到脚本预期

问题现象

部署应用中的shell脚本部署完成后未达到脚本预期。

原因分析

应用部署成功,但应用中的脚本执行失败。

处理方法

部署应用中shell脚本,会输出脚本执行过程中的结果,可以参考shell脚本提供的两个执行选项,方便定位问题。

  • set –e 选项,脚本执行过程中遇到第一个报错命令,整个脚本退出执行,返回错误信息。
  • set –x 选项,脚本执行过程中输出debug信息,即每一条命令执行的详细信息,方便问题定位。