首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >程序在rc.d脚本启动后终止(Arch Linux)

程序在rc.d脚本启动后终止(Arch Linux)
EN

Stack Overflow用户
提问于 2010-12-27 03:58:50
回答 1查看 196关注 0票数 0

嘿,伙计们,我写了一个程序作为我的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启动过程中“存活”。

对可能发生的事情有什么想法吗?

你好,克里斯·布赫霍尔茨

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-27 04:07:18

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

代码语言:javascript
复制
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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4535199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档