A localidade alterada no CentOS 7 usando localectl não funciona

A localidade alterada no CentOS 7 usando localectl não funciona

Quero alterar a localização para en_US.utf8que todas as mensagens de log dos aplicativos sejam exibidas em inglês. Isso funciona quando eu prefixo o comando com LANG=en_US.utf ./my-command, agora todas as saídas ./my-commandsão em inglês.

localectlparece a ferramenta certa para torná-lo permanente, então tentei

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

Mas quando estiver em execução ./my-command, a saída ainda estará em alemão. De acordo com localectl, definimos en_US.utf8:

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

onde localee também a $LANGvariável mostra ainda alemão:

[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

Também verifiquei que a localidade existe com localectl -a:

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

Por que isto não está funcionando? Não é rastreável para mim. Como você pode ver, todos os comandos foram executados como root, portanto não pode haver problema de permissão.

Não quero apenas definir a LANGvariável de ambiente em algum lugar globalmente, como /etc/profilesdesde que o servidor foi provisionado pelo Ansible, portanto, não há shell de login interativo.

informação relacionada