1

如果后台进程检测到我的笔记本电脑盖关闭,我正在创建一个个人应用程序以向我的手机发送短信。

我研究过,有几种方法可以做到这一点:

  1. ACPI - 它侦听事件(笔记本电脑盖关闭)并运行 bash 脚本。但是我不确定如何让它运行一个 ruby​​ 脚本。

  2. D-bus - 允许桌面应用程序和内核之间的通信,但我必须先创建一个桌面应用程序,这有点矫枉过正。

我是系统编程的新手,这个项目只是测试系统编程水域的一种方式。因此,我上面的描述可能不准确。

如果你们有任何想法如何实现这个应用程序的功能 - 当笔记本电脑盖合上时向指定的电话号码发送短信 - 我全都在听。

4

1 回答 1

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,在基于 systemd 的发行版上它是sudo systemctl restart acpid.service.

于 2015-07-01T13:17:32.443 回答