Como posso depurar porque o gnome-settings-daemon-localeexec não está iniciado no login?

4

Estou usando o Ubuntu Gnome 14.04 e o gnome-settings-daemon-localeexec não é iniciado no login. Como posso depurar porque isso está acontecendo?

Eu encontrei esta pergunta: gnome-settings-daemon não começando quando eu login , mas não é realmente uma solução para mim, então eu quero depurá-lo e encontrar o problema real e, provavelmente, apresentar um bug, se necessário.

Eu sou um usuário Linux experiente, mas não sei como o processo de inicialização do shell do gnome funciona e por onde começar.

EDITAR:

Estas podem ser questões relacionadas:

EDIT 2:

Eu abri um relatório de bug no launchpad, vamos ver se isso ajuda: gnome-settings-daemon-localeexec não é iniciado no login

EDIT 3:

Encontrou estes outros tópicos que podem ajudar:

por adosaiguas 13.05.2014 / 20:05

1 resposta

4

A depuração é um processo, portanto, descreverei o processo que usaria para atacar esse problema. As perguntas são:

  • funciona para uma nova conta de usuário? (ou seja, é um problema genérico com o sistema, ou com uma conta?)
  • como é que isso deve ser iniciado?
  • está realmente sendo iniciado?
  • se sim, está falhando ou falhando? (Isto é talvez mais provável do que não ser executado em primeiro lugar, e os resultados são semelhantes)

Se houver um problema com uma conta (configuração de usuário) e ela funcionar com uma conta recém-criada, você poderá rastreá-lo copiando arquivos de configuração da conta quebrada para a conta de trabalho e testando o login. quebra. (Ou, alternativamente, comece com a conta quebrada e remova arquivos e diretórios até que funcione.) Aborde isso como um processo iterativo - comece, copie um diretório / conjunto de arquivos, quebre a conta sim / não, elimine metade do conjunto , vá em frente. Pode ser demorado, por isso normalmente as pessoas apenas redefinem a conta e não se preocupam em rastrear o que quebrou.

Se você quiser rastrear a origem do problema, primeiro procure em ~ / .cache / gdm / session.log e / var / log / syslog para ver se há algum erro óbvio relacionado ao seu problema. Então use a fonte:

$ apt-file search gnome-settings-daemon-localeexec
gnome-settings-daemon: /usr/lib/gnome-settings-daemon/gnome-settings-daemon-localeexec
$ apt-get source gnome-settings-daemon
$ cd gnome-settings-daemon-*
$ grep -r gnome-settings-daemon-localeexec
...
data/gnome-settings-daemon.desktop.in.in:Exec=@libexecdir@/gnome-settings-daemon-localeexec
$ cat data/gnome-settings-daemon.desktop.in.in
[Desktop Entry]
Type=Application
_Name=GNOME Settings Daemon
Exec=@libexecdir@/gnome-settings-daemon-localeexec
OnlyShowIn=GNOME;
NoDisplay=true
X-GNOME-Autostart-Phase=Initialization
X-GNOME-Autostart-Notify=true
X-GNOME-AutoRestart=true

Então agora sabemos que o gnome-settings-daemon-localeexec é executado a partir de um arquivo .desktop chamado gnome-settings-daemon.desktop. Onde está instalado?

$ locate gnome-settings-daemon.desktop
/usr/share/gnome/autostart/gnome-settings-daemon.desktop
$ file /usr/lib/gnome-settings-daemon/gnome-settings-daemon-localeexec
/usr/lib/gnome-settings-daemon/gnome-settings-daemon-localeexec: POSIX shell script, ASCII text executable
$ vi /usr/lib/gnome-settings-daemon/gnome-settings-daemon-localeexec
# it is just a wrapper around /usr/lib/gnome-settings-daemon/gnome-settings-daemon

Tente executá-lo para ver se há um problema ao executar o daemon real (falha etc.):

$ /usr/lib/gnome-settings-daemon/gnome-settings-daemon-localeexec

Você também pode tentar:

$ gnome-settings-daemon --debug

O início automático está sendo executado? A pesquisa por "debug gnome autostart" resulta em esta página , que sugere:

% bl0ck_qu0te%

Então, tente isso e, em seguida, verifique / var / log / syslog. Outra alternativa aqui é modificar / usr / lib / gnome-settings-daemon / gnome-settings-daemon-localeexec e adicionar instruções de depuração. É apenas um script de shell, então adicione algo como echo "localeexec date $(date) env $(env)" > /tmp/log . Então faça o login e verifique / tmp / log.

(Ao depurar qualquer programa, geralmente há uma maneira de anexar suas instruções de impressão a um arquivo de log "adequado", mas abrir seu próprio arquivo de log é mais fácil e rápido, pois ele mantém a depuração separada e não exige compreender as múltiplas camadas de idioma / sistema / nível de log / filtragem que estão em vigor para qualquer programa.)

A criação de log e a depuração até o momento provavelmente expuseram o problema. Para bugs mais difíceis, que estão nos binários compilados, você terá que baixar a fonte com apt-get source , modificá-lo para adicionar algum código de depuração (instruções de impressão), compilar a fonte modificada e instalá-lo e depois testá-lo. O melhor de tudo é que todo o sistema apt/dpkg é projetado para tornar isso fácil, rápido e acessível com apenas alguns comandos. Um depurador pode ser útil para examinar o estado do programa interno complexo, mas o uso de instruções de impressão é um processo mais rápido que funciona em todos os idiomas e sistemas, de modo que normalmente é minha abordagem inicial.

EDITAR:

Como resumo dos comentários, substituí a linha em / usr / lib / gnome-settings-daemon / gnome-settings-daemon-localeexec:

exec /usr/lib/gnome-settings-daemon/gnome-settings-daemon

com

nohup /usr/lib/gnome-settings-daemon/gnome-settings-daemon --debug >/tmp/gnome-settings-daemon.log 2>&1 &

para capturar a saída do processo

    
por bain 20.05.2014 / 15:03