私は、フォームの、2つのルビサーバスクリプト、powerupserver.rbとoutputserver.rbを持っている:開発でBluepillでRubyサーバスクリプトを実行するにはどうすればよいですか?
require '/Library/WebServer/sample_app/config/environment'
# more requires
@server = TCPServer.open(port_number)
loop do
Thread.start(@server.accept) do |sock|
# do stuff
end
end
私はそれらを実行するためにフォアマンを使用し、それは素晴らしい作品。今私はBluepillのデーモンとしてバックグラウンドで実行して監視しようとしています。 ForemanにはBluepill設定ファイル(.pillファイル)にエクスポートするオプションがあるため、私はBluepillを主に選択しました。だから私はそれをやったし、次の取得するために、必要に応じて.pillファイルを変更された:私はこの.pillをロードし、状態を確認
Bluepill.application("sample_app", :foreground => false, :log_file => "/var/bluepill/log/bluepill.log") do |app|
app.process("powerupserver") do |process|
process.start_command = "ruby powerupserver.rb"
process.working_dir = "/Library/WebServer/sample_app"
process.pid_file = "/var/bluepill/pids/powerupserver-1.pid"
process.daemonize = true
process.stdout = process.stderr = "/var/bluepill/log/powerupserver-1.log"
process.start_grace_time = 3.seconds
process.stop_grace_time = 5.seconds
process.restart_grace_time = 8.seconds
process.stop_signals = [:quit, 30.seconds, :term, 5.seconds, :kill]
process.checks :cpu_usage, :every => 10.seconds, :below => 5, :times => 3
process.checks :mem_usage, :every => 10.seconds, :below => 100.megabytes, :times => [3,5]
process.checks :flapping, :times => 2, :within => 30.seconds, :retry_in => 7.seconds
end
# more lines here mimicking above, but for server script 'outputserver.rb'
end
は(須藤bluepill状態)、私は以下を参照してください
$ sudo bluepill status
powerupserver(pid:0): up
outputserver(pid:0): up
これはおそらく上がっています(ただし、0のpidを持っていますが、確かに良くないと思われます)が、実行していない/実行していることがわかります。 Bluepillの知識を持つ人が私がここで間違っていることを理解するのに役立つでしょうか?事前にありがとうございました!
ブルーフィルを使用しています。潜在的な問題:プロセスが自己デーモン化していますか?それは始めるのがかなり遅いですか?たとえば、ユニコーン(+レール)を30秒間起動する必要があります。そうしないとBluepillはpidを取得しません。 – d11wtq