1

我想在 ubuntu 中创建简单的通知应用程序...例如:在 18:00、21:00、24:00 我想接收来自 ubuntu 的消息

消息的简单方法是:

def alarm
  %x{notify-send -i rhythmbox Test "Hello world" }
end

alarm

当我打开这个文件时(比如:ruby somefilename.rb)

我收到通知消息。

Question: how to cause this file run in 18:00, 21:00, 24:00

PS我知道有很多类似的程序(对于喜欢知道如何做到这一点的经验)

UD 使用 crontab:

* * * * * %x{notify-send -i rhythmbox Test "Hello world" }

每分钟都应该启动这个脚本 - 但什么也没发生

在一些示例中,我看到我们放置了它们的路径而不是脚本:像这样:

* * * * * ruby /home/Home/myDisk/somefile.rb

如何用 ruby​​ 打开这个文件或在没有 ruby​​ 的终端中启动 notify-send 脚本?

4

1 回答 1

1

好的工具是cronanacron

要在 Ruby 中执行此操作,一种方法是使用 Rubysleep方法:

seconds = 18 * 60  # 18 minutes * 60 seconds/minute
sleep(seconds)
alarm

要在循环中使用您的“唤醒”时间:

start = Time.now
for wake in [18, 21, 24]
  seconds = wake * 60 + start - Time.now
  sleep(seconds)
  alarm
end

另请参阅 RubyThread并行执行警报:

for wake in [18, 21, 24]
  threads << Thread.new(wake) {|wake|
    sleep(wake * 60)
    alarm    
  }
end
threads.each {|t| t.join }
于 2013-02-04T07:06:31.740 回答