本文共 485 字,大约阅读时间需要 1 分钟。
在产品中,服务脚本位于/etc/init.d中。当运行service xxx start命令启动服务时,脚本调用ice_main进程。此进程尝试通过运行locale命令获取当前语言(LANG),然而获取的值为空。为了确定原因,进行了以下分析和排查:
服务启动流程分析:
Redhat6和Redhat5的区别:
解决方法:
-修改服务脚本,确保传递必要环境变量,如LANG。-直接在冰_main代码中设置LANG值,验证传递有效性。进一步检验:
-通过修改env命令,确保子进程继承父进程环境变量。-使用命令直接调用服务脚本,避免通过service命令启动。通过以上步骤,确定了服务启动脚本未传递必要环境变量,导致LANG为空。最终,修改服务脚本确保环境变量传递,成功解决问题。
转载地址:http://kugoz.baihongyu.com/