我目前正在嘗試使用上帝監視總共三個Rails /機架應用程序的各種進程/守護進程。監控效果很好,問題是我無法配置上帝在重啓後自動啓動所有進程。使用上帝與多個應用程序,並在重新啓動後自動啓動它
我的設置:我在Centos上運行Linux VPS & Plesk。 我有一個非root用戶「deployer」,用於部署&運行三個Rails/Rack應用程序。兩個應用程序與乘客apache模塊一起運行,第三個應用程序使用瘦服務器(這是必要的,因爲應用程序不能與apache協同工作)。正在使用乘客的兩個Rails應用程序有額外的rake任務在後臺運行 - 這些和瘦服務器都由上帝監控。
神寶石在所有三個應用程序的Gem文件中指定。
在每deploy.rb文件我有一個看起來像
namespace :misc do
desc "restart woekers using gog; restart webserver"
task :restart, roles: [:web, :resque] do
run "touch #{current_path}/tmp/restart.txt"
god.all.start
god.all.reload
god.all.terminate
god.all.start
end
end
服務器重新啓動後的方法,如果我跑帽其他:所有三個應用程序手動重啓,所有的進程都啓動了並正確監控。
每次嘗試在啓動時自動啓動上帝,並開始所有必要的過程失敗。 我嘗試了很多不同的東西,但沒有任何工作。我的方法,到目前爲止是創建與@reboot一個cron任務運行三個以下腳本:
#!/bin/bash -l
cd /path/to/app/ && bundle exec god -c /path/to/app/config/god/resque.god && bundle exec god load /path/to/app/config/god/resque.god && bundle exec god start resque
此應用爲先的偉大工程:上帝和所有的進程已經啓動。 當爲第二個應用程序執行腳本時(當然使用正確的路徑),god不能啓動任務。 我啓用了登錄上帝和錯誤消息(在機架應用程序的情況下)「瘦:命令未找到」。 當我首先啓動機架應用程序時,瘦啓動正確,並找不到其他任務的命令。
我不明白我的配置有什麼問題。我在上面的代碼中添加了bundle exec命令,因爲你可以在上面看到這些命令(所以這些命令應該在它們各自的應用程序的環境中執行) - 不過,它只是沒有用。
我真的很感激,如果有人可以幫助我讓上帝自動啓動。
如果您需要更多信息,請不要猶豫,問問!
先謝謝了!