Emerald 经常崩溃

Emerald 经常崩溃

我安装了 Lubuntu 14.10,然后安装了 Compiz 作为窗口和复合管理器,然后安装了来自 ppa:nilarimogard/webupd8 的 Emerald 作为窗口装饰器。它运行良好,但 Emerald 经常崩溃。窗口边框消失了,没有其他反应。所以我emerald --replace在终端中运行。

第一次撞车时我

Segmentation fault (Core dumped).

第二次崩溃:

(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)

第三次崩溃:

Segmentation fault (core dumped)

我正在考虑编写一个脚本或程序,以便在 Emerald 停止时重新启动它,但是肯定有更好的方法......

答案1

由于 emerald 不再是官方支持的存储库,它的分段错误与本论坛无关。

我用这个不太优雅的解决方法“解决”了这个问题。

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;
}

编译它并让 Compiz 运行它而不是 emerald。每次 emerald 崩溃时,它都会重新启动。

相关内容