chr*_*olz 0 c++ linux archlinux
嘿伙计们,我已经编写了一个程序作为我的MacBook Pro的键盘背光控制器,它运行Arch,就像OS X中本身一样.程序本身很好用,但是我提供的Arch程序的rc.d脚本包,似乎没有正确打开程序...或者我认为.
可以在此处找到Arch包的源代码(rc.d脚本和PKGBUILD文件).我在/etc/rc.conf中添加了"mbpkbdbacklightctl"到守护进程的行.
会发生什么,在启动时,我看到rc.d脚本启动程序启动没有错误,键盘上的背光点亮,这意味着程序也运行正常,但是当gdm开始记录时在gnome中,程序似乎已经被终止了.我没有找到任何错误记录,但如果没有在20秒或更长时间内注册键盘或鼠标事件,程序将关闭背光,并在注册时重新打开它,这不会发生在gdm上,也不会发生在侏儒.此外,当我到达gnome并执行a时pidof -o %PPID /usr/bin/mbpkbdbacklightctl,它不会返回任何表示程序已终止的内容.当gnome启动时,我必须重新启动rc.d脚本才能使事情正常运行.
我似乎无法掌握该程序自终止后会发生什么.程序的源代码可以在这里找到,但我相信错误是在rc.d脚本中,它可能无法正常启动程序,因为它可以通过gdm启动"生存".
有什么想法可以发生什么?
此致,Chris Buchholz
如果您阅读了源代码,mbpkbdbacklightctl.cpp您将看到以下行:
95 std::string the_display = ":0.0";
96 Display *x11_display = XOpenDisplay(the_display.c_str());
97 if(x11_display != NULL) {
Run Code Online (Sandbox Code Playgroud)
因此,如果没有活动的X服务器,它将失败,这意味着您必须在 X会话启动后启动此脚本.所以你必须把你的脚本放在下面/etc/X11/xinit/xinitrc.d