我正在创建一个个人应用程序,如果后台进程检测到笔记本电脑盖关闭,我会向手机发送短信。
我研究过,有几种方法可以做到这一点:
ACPI - 它侦听事件(笔记本电脑盖关闭)并运行bash脚本。但是我不知道如何让它运行ruby脚本。
D-bus - 允许桌面应用程序和内核之间的通信,但我必须先创建一个桌面应用程序,这有点过分。
我是系统编程的新手,这个项目只是一种测试系统编程水域的方法。因此,我上面的描述可能不准确。
如果你们有任何想法如何实现这个应用程序的功能 - 当笔记本电脑盖关闭时发送短信到指定的电话号码 - 我都是耳朵。
答案 0 :(得分:1)
您可以在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守护程序。这取决于发行版,但基于新贵的发行版是sudo service acpid restart
,基于系统的发行版是sudo systemctl restart acpid.service
。