Eu corro o Debian com o Blackbox como meu gerenciador de janelas, que começo da maneira antiga em um console com o startx
comando. No Debian 11, tive um problema com alguns aplicativos GUI demorando muito para iniciar. Substituindo
exec blackbox
com
exec dbus-launch --exit-with-session blackbox
em .xinitrc
resolvido o problema. Hoje atualizei para o Debian 12 (uma nova instalação), mas agora estou com o mesmo problema novamente, apesar de usar o dbus-launch. O Firefox, por exemplo, leva 25 segundos para iniciar pela primeira vez. Os lançamentos subsequentes levam menos de cinco segundos. Eu tentei executar o firefox através do strace
comando para ver o que está acontecendo:
$ strace firefox
Aqui estão as últimas dez linhas antes do processo travar por um tempo:
futex(0x7f060049ca18, FUTEX_WAKE_PRIVATE, 1) = 1
eventfd2(0, EFD_CLOEXEC|EFD_NONBLOCK) = 35
futex(0x7f0600500018, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f0600500018, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7f0600500018, FUTEX_WAKE_PRIVATE, 1) = 0
write(27, "\1\0\0\0\0\0\0\0", 8) = 8
clock_gettime(CLOCK_MONOTONIC, {tv_sec=6056, tv_nsec=849987069}) = 0
futex(0x7f060049ca18, FUTEX_WAKE_PRIVATE, 1) = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=6056, tv_nsec=850085427}) = 0
poll([{fd=35, events=POLLIN}], 1, 25000
Alguém pode interpretar a saída? Qual poderia ser o problema?
Esse problema parece exatamente com o que tive executando um gerenciador de janelas diferente (dwm), mas iniciando da mesma maneira no terminal do console. Os sintomas incluíam o lançamento lento do firefox, que levava cerca de 30 segundos para ser iniciado. Após as soluções abaixo, isso foi reduzido para cerca de 8 segundos.
Esse problema foi resolvido de duas maneiras em computadores diferentes.
Primeiro, a seguinte linha foi adicionada ao .xinitrc e o X reiniciado:
A segunda solução em outro computador foi guiada por este conselho debian sobre o uso de .xsession em vez de .xinitrc: https://wiki.debian.org/Xsession . Quando .xsession substituiu .xinitrc, o comando "dbus-update-activation-environment" era desnecessário e não foi incluído no arquivo .xsession, pois é executado em /etc/X11/Xsession.d. Caso contrário, os comandos e opções originais do .xinitrc foram copiados para o novo arquivo .xsession e o arquivo .xinitrc foi removido.