Изменение локали в CentOS 7 с помощью localectl не работает

Изменение локали в CentOS 7 с помощью localectl не работает

Я хочу изменить локализацию, en_US.utf8чтобы все сообщения журнала от приложений отображались на английском языке. Это работает, когда я добавляю к команде префикс LANG=en_US.utf ./my-command, теперь все выходные ./my-commandданные английские.

localectlкажется правильным инструментом, чтобы сделать его постоянным, поэтому я попробовал

[root@cnx65 ~]# localectl set-locale LANG=en_US.utf8

Но когда сейчас запущено ./my-command, вывод все еще на немецком языке. Согласно localectl, мы en_US.utf8установили:

[root@cnx65 ~]# localectl
   System Locale: LANG=en_US.utf8
       VC Keymap: de_alt_UTF-8
      X11 Layout: us

где localeи $LANGпеременная также показывает по-прежнему немецкий:

[root@cnx65 ~]# locale
LANG=de_DE.UTF-8
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=
[root@cnx65 ~]# echo $LANG
de_DE.UTF-8

Я также проверил, что локаль существует, с помощью localectl -a:

[root@cnx65 ~]# locale -a | grep en_US.utf8
en_US.utf8

Почему это не работает? У меня это не отслеживается. Как видите, все команды выполнялись от имени root, так что проблем с правами быть не могло.

Я не хочу просто устанавливать LANGпеременную окружения где-то глобально, как в , /etc/profilesпоскольку сервер был подготовлен Ansible, поэтому интерактивной оболочки входа нет.

Связанный контент