2015-02-13 2 views
0

У меня есть встроенная система, в которой мы хотим создать пользовательские летнее время.TZ Variable, custom file

Я могу добиться этого, установив переменную окружения TZ, например: export TZ=IST-2IDT,M3.4.4/26,M10.5.0.

У нас есть несколько демонов, работающих (например, daemonA, daemonB и т. Д.), И если один из них экспортирует TZ, тогда другие демоны не смогут его увидеть. Так что это проблема. Возможная работа может заключаться в том, чтобы использовать файл вместо переменной среды, чтобы «все» могли его видеть.

Руководство GNU C Library говорит следующее:

:characters Each operating system interprets this format differently; in the GNU C Library, characters is the name of a file which describes the time zone.

Когда я export TZ=:/etc/TZ, а затем echo IST-2IDT,M3.4.4/26,M10.5.0 > /etc/TZ, он не работает. Я вижу это, когда я оформить date команду:

Mon Aug 15 04:19:36 /etc/TZ 2016

Кто-нибудь может дать мне какие-нибудь подсказки?

Большое спасибо!

ответ

1

Файлы, такие как/etc/TZ, зависят от типа системы (назовите их нестандартным как таковым, хотя стандартизация в этой области бедна). Обычный часовой пояс настраивается через файлы/etc/localtime. Обычно они генерируются из файлов правил (текста) с помощью timezone compiler. Например, в справочной странице tzfile.

timezone-in-date - хорошее место, чтобы начать читать дальше - поскольку в нем упоминается несколько возможностей относительно/etc/TZ. Если/etc/TZ - это то, что работает для вашей системы, то принятый ответ указывает на это Oracle page, который, как представляется, документирует формат.

+0

Hi Thomas. Я использую glibc. Я провел небольшое исследование, и, похоже, glibc/eglibc не использует/etc/TZ, но вместо этого используйте/etc/localtime, как вы сказали. Работа/etc/localtime работает, но не соответствует моим требованиям, потому что мне нужно иметь возможность создавать пользовательские часовые пояса во время выполнения при использовании встроенной платы. Переменная окружения TZ достигает этого, но другие демоны не могут ее видеть (как упоминалось в исходном сообщении). –

+1

Если вы установите переменную окружения или обновите/etc/localtime, вам придется перезапустить другие демоны, чтобы они использовали новые настройки часового пояса. –

+0

Возможно, вы видели это, конечно: http://lists.busybox.net/pipermail/buildroot/2012-October/060338.html –