启动ruby脚本onLoad ubuntu

时间:2013-02-04 06:54:57

标签: ruby ubuntu

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

消息的简单方法是:

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

alarm

当我sart这个文件时(例如:ruby somefilename.rb)

我收到了通知消息。

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

PS我知道有很多类似的程序(对于想知道如何做的经验)

U.D。使用crontab:

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

每分钟都应该启动这个脚本 - 但没有任何事情发生

在某些例子中,我看到我们没有脚本而是将路径放到它们上面:这样的事情:

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

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

1 个答案:

答案 0 :(得分:1)

好的工具是cronanacron

要在Ruby中实现,一种方法是使用Ruby sleep方法:

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

另请参阅Ruby Thread并行执行警报:

for wake in [18, 21, 24]
  threads << Thread.new(wake) {|wake|
    sleep(wake * 60)
    alarm    
  }
end
threads.each {|t| t.join }