在嵌入式linux系统上作为守护进程运行SDL应用程序



我正在开发一个使用/dev/fb0帧缓冲区进行图形输出的应用程序。从终端执行时运行良好,但当我尝试将其作为守护进程运行时,它不会在帧缓冲区上输出任何内容。

    pid_t pid, sid;
    pid = fork();
    if (pid < 0) {
        exit(EXIT_FAILURE);
    }
    if (pid > 0) {
        exit(EXIT_SUCCESS);
    }
    umask(0);
    setlogmask (LOG_UPTO (LOG_NOTICE));
    openlog ("nattisserver", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);     
    syslog (LOG_NOTICE, "nattisserver daemon starting..", getuid ());
    sid = setsid();
    if (sid < 0) {
        exit(EXIT_FAILURE);
    }
    if ((chdir("/root/")) < 0) {
        exit(EXIT_FAILURE);
    }
    close(STDIN_FILENO);
    close(STDOUT_FILENO);
    close(STDERR_FILENO);
    // My routines for drawing content to the framebuffer
    get_ibus_departures();
    nattis_sdl_init();
    nattis_sdl_draw();

通过在切换到作为守护进程运行之前初始化SDL来解决。

最新更新