2013-02-04 51 views
1

我想创建一个Ubuntu的通知简单的应用程序... 例如:在18:00,21:00,24:00我想从Ubuntu的启动Ruby脚本的onLoad Ubuntu的

简单的方法收到消息消息是:

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

alarm 

,当我SART这个文件(如:红宝石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" } 

每分钟应该开始这个脚本 - 但没有happend

在一些例子中我看到的不是剧本,我们把路给他们

:是这样的:

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

如何打开ruby这个文件或启动通知发送脚本在终端没有红宝石?

+0

google“cron job” –

+0

我开始使用cron作业 - 但是:我把下一页=> * * * * *通知发送-i rhythmbox测试“Hello world”=>每分钟开始这个命令,但 - 没有发生=( –

+0

我的回答可能对您有用吗?如果是这样,你可以upvote它?否则,我宁愿删除它。谢谢! – joelparkerhenderson

回答

1

好工具是cronanacron

要做到这一点在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 

另见红宝石Thread并行报警:

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