2015-11-18 88 views
0

在我的服务器上运行主厨客户端时,由于语言环境变量,在执行C++二进制文件的服务重新启动时出现问题。启动厨师客户端时,语言环境变量发生变化

推出厨师客户端之前,我有我的语言环境:

LANG=POSIX 
LANGUAGE= 
LC_CTYPE="POSIX" 
LC_NUMERIC="POSIX" 
LC_TIME="POSIX" 
LC_COLLATE="POSIX" 
LC_MONETARY="POSIX" 
LC_MESSAGES="POSIX" 
LC_PAPER="POSIX" 
LC_NAME="POSIX" 
LC_ADDRESS="POSIX" 
LC_TELEPHONE="POSIX" 
LC_MEASUREMENT="POSIX" 
LC_IDENTIFICATION="POSIX" 
LC_ALL= 

的问题是,当厨师的客户端被启动的语言环境变化,就变成:

LANG=C.UTF-8 
LANGUAGE=C.UTF-8 
LC_CTYPE="C.UTF-8" 
LC_NUMERIC="C.UTF-8" 
LC_TIME="C.UTF-8" 
LC_COLLATE="C.UTF-8" 
LC_MONETARY="C.UTF-8" 
LC_MESSAGES="C.UTF-8" 
LC_PAPER="C.UTF-8" 
LC_NAME="C.UTF-8" 
LC_ADDRESS="C.UTF-8" 
LC_TELEPHONE="C.UTF-8" 
LC_MEASUREMENT="C.UTF-8" 
LC_IDENTIFICATION="C.UTF-8" 
LC_ALL=C.UTF-8 

,并返回到POSIX当执行完成时。

我该如何解决这个问题?并从厨师客户端得到他的​​默认编码设置?该二进制应与POSIX运行(我可以通过在初始化脚本中执行导出LC_ALL = POSIX来修复该问题,但我想知道根本问题)

注意:我没有与主厨客户端11 ,我得到它后,我更新到厨师客户端12

+0

请参阅[这里](https://github.com/chef/chef/blob/master/CHANGELOG.md#1210)和一个可能与您的问题[问题](https://github.com/厨师/厨师/问题/ 3367)。没有关于您使用哪种操作系统的详细信息,您如何调用您的程序,以及哪种版本的厨师,不可能提供更多建议。 – Tensibai

+0

我在Ubuntu 12.04上,Chef-client的版本是12.4.1(主厨服务器paquet:12.0.0-1),我运行的操作是经典的服务重启。 ''执行'restart -toto-service'执行 命令“sudo -i -u toto/toto/scripts/service restart” action:nothing end'' – Dady09

回答

0

相关的代码生活here

基本上在厨师12中,我们试图通过检测系统区域设置来解决因设置不当引起的区域设置问题的长尾巴。这可能不适合你。尽管通过environment属性,您始终可以在执行资源上明确设置它。

+0

Okey谢谢,我会这么做的,所以它是同样的问题@Tensibai提及。这就是为什么我没有与厨师11这个问题 – Dady09