嘿,伙计们,我写了一个程序作为我的MacBook专业版的键盘背光控制器,运行Arch,就像OS本身一样。程序本身工作得很好,但是我在Arch程序包中提供的rc.d脚本,似乎不能正确打开程序……至少我是这么认为的。
Arch包的源代码可以在here (rc.d脚本和PKGBUILD文件)中找到。我已经将"mbpkbdbacklightctl“添加到我的/etc/rc.conf中带有守护进程的行中。
发生的情况是,在启动时,我看到rc.d脚本启动,程序启动时没有错误,键盘上的背光亮起,这意味着程序也可以正常运行,但是当gdm开始登录gnome时,程序似乎已经终止。我还没能找到任何错误记录,但程序将关闭背光,如果没有键盘或鼠标事件在20秒或更多,并重新打开它时,它注册了一个,这不会发生在gdm和gnome中。此外,当我到达gnome并执行pidof -o %PPID /usr/bin/mbpkbdbacklightctl时,它没有返回任何指示程序已经终止的消息。当gnome启动时,我必须重新启动rc.d脚本才能正常运行。
自从程序被终止后,我似乎不能掌握它到底发生了什么。该程序的源代码可以在here中找到,但我认为错误出在rc.d脚本中,它可能无法正确启动程序以使其在gdm启动过程中“存活”。
对可能发生的事情有什么想法吗?
你好,克里斯·布赫霍尔茨
发布于 2010-12-27 04:07:18
如果您阅读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下
https://stackoverflow.com/questions/4535199
复制相似问题