【问题标题】:Invoke ACPI/D-bus to run ruby script调用 ACPI/D-bus 运行 ruby​​ 脚本
【发布时间】:2014-10-01 18:33:21
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: ruby linux bash dbus acpi


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-29
      • 2013-12-03
      • 2015-08-17
      • 2010-12-01
      • 2019-03-11
      相关资源
      最近更新 更多