gnome-terminal não inicia

0

Eu enfrentei o problema quando o terminal não foi iniciado. Eu olhei para um problema relacionado quando o código de idioma não é suportado. Eu tentei atualizá-lo, regenerá-lo - nada de ajuda. Finalmente eu encontrei a próxima mensagem de erro em /var/log/syslog

Dec 31 00:45:43 kes-X751SA console-kit-daemon[2215]: (process:3545): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
Dec 31 00:45:48 kes-X751SA org.gnome.Terminal[2464]: Locale not supported.
Dec 31 00:45:57 kes-X751SA console-kit-daemon[2215]: (process:3562): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed

Aqui não está claro. Se eu tiver local errado, que locale não é suportado? Como verificar quais locales são suportados? Como aplicar localidade suportada?

    
por Eugen Konkov 30.12.2017 / 23:54

2 respostas

2

Diretamente da seção "Solução de problemas" do Guia nosh , sob o título "Terminal do GNOME se recusa a iniciar":

  • The GNOME Terminal server requires that a UTF-8 locale be configured in its LANG environment variable, and refuses to start if it is not. It cannot be just the C locale.

Observe que o servidor de terminal do GNOME é o org.gnome.Terminal service iniciado, indiretamente por meio do DBUS Broker, sob o gerenciador de serviços por usuário. Ele executa um programa chamado gnome-terminal-server , que é o que fornece o emulador de terminal. Não é o comando gnome-terminal cliente que você está executando diretamente, que é apenas um programa de controle para esse servidor.

  • Se você estiver permitindo que o broker DBUS por sessão / usuário gerencie os processos do servidor diretamente, que é a maneira antiga, mas não recomendada, de fazer as coisas, é necessário assegurar que seu próprio broker DBUS por sessão / usuário esteja em execução. uma localidade UTF-8.

    Como existem muitas maneiras variadas em que o agente DBUS pode ser chamado, exatamente como você faz isso está além do escopo desta resposta.

  • Se o seu agente DBUS estiver simplesmente passando as informações para um gerenciador de serviços por usuário adequado, que é a maneira nova e agora recomendada de fazer as coisas, você precisa garantir que a definição de serviço para seu usuário org.gnome.Terminal service define uma localidade UTF-8.

    Como você faz isso depende do tipo de gerenciador de serviços por usuário que você possui. Com o gerenciamento de serviços nosh, por apenas um exemplo, um apenas ajusta seu diretório de ambiente de serviço ( $HOME/.config/service-bundles/services/org.gnome.Terminal/service/env ) com o comando set-service-env :

    system-control --user set-service-env org.gnome.Terminal LANG en_GB.UTF-8

    Se você tiver feito systemd por gerenciamento de serviços por usuário, para outro exemplo, você precisará injetar uma configuração Environment= em /lib/systemd/user/gnome-terminal-server.service usando o mecanismo "drop-in", que as pessoas do systemd não documentam para serviços por usuário.

Você certamente certifica-se de que essa localidade também exista como uma definição de localidade em seu sistema. Não é bom ajustar-se ao código do idioma UTF-8 se não houver essa definição de localidade UTF-8 presente.

Leitura adicional

por 31.12.2017 / 10:02
0

Aqui está a lista de comandos que me ajuda:

sudo apt install dconf-cli
dconf reset -f /org/gnome/terminal
sudo apt-get remove gnome-terminal
sudo apt-get install gnome-terminal
sudo locale-gen --purge
sudo dpkg-reconfigure locales
reboot
    
por 31.12.2017 / 12:48