Emerald falha frequentemente

0

Eu instalei o Lubuntu 14.10, depois o Compiz como gerenciador de janela e composto, depois o Emerald de ppa: nilarimogard / webupd8 como decorador de janelas. Funciona muito bem, mas a esmeralda cai com muita frequência. As bordas da janela simplesmente desaparecem e nada mais acontece. Então eu corri emerald --replace no terminal.

No primeiro acidente eu peguei

Segmentation fault (Core dumped).

Segundo acidente:

(emerald:15385): GLib-GObject-WARNING **: invalid uninstantiatable type '(null)' in cast to 'GdkDrawable'

(emerald:15385): Gdk-CRITICAL **: IA__gdk_cairo_create: assertion 'GDK_IS_DRAWABLE (drawable)' failed
Segmentation fault (core dumped)

Terceiro acidente:

Segmentation fault (core dumped)

Eu estava pensando em escrever um script ou programa que reiniciasse a esmeralda se ela parasse, mas bem, deve haver uma maneira melhor de contornar ...

    
por Radovan Bezak 15.12.2014 / 23:38

1 resposta

1

Como o esmeralda não está mais nos repositórios oficiais suportados, suas falhas de segmentação não são uma coisa para este fórum.

Eu "resolvi" esse problema com essa solução não tão elegante.

file: emerald-restarter.c

#include <unistd.h>
#include <stdio.h>

int main() {

        int pid;

        while (1)
        {
                pid = fork();
                switch ( pid )
                {
                        case 0:
                        printf("Child process starting emerald.\n");
                        execlp("emerald","--replace",NULL);
                        break;

                        case -1:
                        fprintf(stderr,"Fork failed.\n");
                        return -1;
                        break;

                        default:
                        printf("Main process waiting for PID %i to finish.\n",pid);
                        wait();
                        break;
                }
        }
return 0;
}

Compile e deixe o Compiz rodar isso em vez de esmeralda. Ele continuará reiniciando a esmeralda toda vez que ela falhar.

    
por Radovan Bezak 17.12.2014 / 10:05