Fedora 15语言环境未正确设置

时间:2011-12-12 10:26:09

标签: bash locale fedora

我在Fedora 15上运行了一个C程序(DHCPD);它使用on commit语句(后者又使用exec命令)来调用脚本。当所有语言环境文件(例如i18n)都设置为$LANG时,脚本的en_US.UTF-8变量始终设置为en_GB.utf8

有趣的是,当脚本从shell提示符运行时,$LANG变量设置为en_GB.utf8 - 如何从DHCPD程序调用时使用en_GB.utf8? ??

1 个答案:

答案 0 :(得分:1)

首先要做的是检查/etc/sysconfig/i18n并查看LANG设置的内容。

Fedora 15将使用systemd启动dhcpd之类的服务,它将忽略用户环境并为每个守护程序启动它启动一个干净的环境。它确实需要/etc/sysconfig/i18n的设置,但守护进程应该使用那里指定的设置运行。

如果这似乎是正确的,请查看/proc/NNN/environ,其中NNN是您的dhcpd进程的PID,以查看LANG设置的内容。请注意,此文件是原始环境,因此每个字符串之间都有一个二进制nul。

如果这是您的期望,那么最可能的答案是dhcpd在调用其配置文件中指定的脚本之前故意清理环境。