2013-03-30 59 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系統中使用新手。一旦你有了初始化腳本,你就可以使用廚師的「服務」資源來確保服務能夠始終運行,並且在第一次創建廚師的過程中啓動。瞧!