0

嘿,伙计们,我已经编写了一个程序来充当运行 Arch 的 MacBook Pro 的键盘背光控制器,就像 OS X 中的本机一样。程序本身运行良好,但是我为 Arch 程序提供的 rc.d 脚本包,似乎没有正确打开程序......或者我认为。

Arch 包的源代码可以在这里找到(rc.d 脚本和 PKGBUILD 文件)。我在 /etc/rc.conf 中的守护进程行中添加了“mbpkbdbacklightctl”。

发生的情况是,在启动时,我看到 rc.d 脚本启动程序启动时没有错误,并且键盘上的背光灯亮起,这意味着程序也正常运行,但是当 gdm 开始记录时在 gnome 中,该程序似乎已经被终止。我找不到任何记录的错误,但是如果在 20 秒或更长时间内没有注册键盘或鼠标事件,程序将关闭背光,并在注册时重新打开,这不会发生在 gdm 上,也没有在侏儒。此外,当我到达 gnome 并执行 apidof -o %PPID /usr/bin/mbpkbdbacklightctl时,它没有返回任何内容,表明程序已终止。当 gnome 启动时,我必须重新启动 rc.d 脚本才能使事情正常运行。

自从程序终止以来,我似乎无法掌握该程序会发生什么。程序的源代码可以在这里找到,不过,我相信错误出现在 rc.d 脚本中,并且它可能无法正确启动程序以使其通过 gdm 启动“存活”。

对可能发生的事情有任何想法吗?

问候, 克里斯·布赫霍尔兹

4

1 回答 1

5

如果您阅读源代码,mbpkbdbacklightctl.cpp您将看到以下几行:

95  std::string the_display = ":0.0";
96  Display *x11_display = XOpenDisplay(the_display.c_str());
97  if(x11_display != NULL) {

因此,如果没有活动的 X 服务器,它将失败,这意味着您必须在X 会话启动后启动此脚本。所以你必须把你的脚本放在/etc/X11/xinit/xinitrc.d

于 2010-12-26T20:07:17.573 回答