我正在创建一个个人应用程序,以便在后台进程检测到我的笔记本电脑盖关闭时向我的手机发送短信。
我研究过,有几种方法可以做到这一点:
它监听一个事件(关闭笔记本电脑盖)并运行一个bash脚本。但是我不知道如何让它运行一个ruby脚本。
d-bus-允许桌面应用程序和内核之间的通信,但我必须先创建一个桌面应用程序,这有点过分了。
我是系统编程新手,这个项目只是一个测试系统编程的方法。因此,我上面的描述可能不准确。
如果你们对如何实现这个应用的功能有任何想法的话——当笔记本电脑盖关闭时,向指定的电话号码发送短信——我洗耳恭听。
最佳答案
您可以在acpi事件上运行ruby脚本。
首先使用acpi_listen
来确定关闭盖子的事件是什么。
我的情况是这样的:button/lid LID close
然后您必须创建一个acpi事件处理程序(用您喜欢的文本编辑器替换vim):sudo vim /etc/acpi/events/laptop_lid
event=button/lid LID close
action=/etc/acpi/your_ruby_script.rb
接下来,将脚本放入
/etc/acpi/
并使其可执行:sudo cp /path/to/your_ruby_script.rb /etc/acpi/your_ruby_script.rb
sudo chmod +x /etc/acpi/your_ruby_script.rb
最后重新启动acpi守护进程。这取决于发行版,但在基于upstart的发行版上它是
sudo service acpid restart
的,在基于systemd的发行版上它是sudo systemctl restart acpid.service
的。关于ruby - 调用ACPI/D-bus运行ruby脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25200783/