2013-03-30 105 views
1

我想在后台运行简单的脚本。它需要在机器整个生命周期内保持活跃。厨师 - 在后台运行长时间运行的脚本

script "my_script" do 
interpreter "ruby" 
cwd "/home/my_home" 
user "root" 
code << -EOH 
    pid = fork 
    if pid 
    Process.detach(pid) 
    system("ruby the_actual_script.rb > logfile") 
    end 
EOH 

但是,这似乎并没有运行,它似乎已经运行并立即退出。有一个大小为0的日志文件。我将cwd文件夹设置为777权限。

找不出问题所在。我猜测厨师在一个不同的shell中执行此操作,并在退出该shell后删除所有进程?

有没有更好的方法来简单地在后台运行脚本?

+0

从脚本创建服务。 –

回答

3

您描述的内容称为“服务”。您可以将脚本放在自己的文件中,例如使用“cookbook_file”厨师资源。然后为它写一个init脚本,例如在Ubuntu系统中使用新手。一旦你有了初始化脚本,你就可以使用厨师的“服务”资源来确保服务能够始终运行,并且在第一次创建厨师的过程中启动。瞧!