同じサーバーで同じプロジェクトを2回実行したいとします。だから私はこの目的のために二つの環境alpha
とbeta
を定義しました。複数のレール環境を並行して走らせるには?
alpha
ポート3000beta
上で実行する必要があるポート4000
上で実行する必要がありますその後、私は二回、サーバーを起動しよう:
$ ruby bin/rails server -b 0.0.0.0 -p 3000 -e alpha --pid tmp/pids/server-alpha.pid
$ ruby bin/rails server -b 0.0.0.0 -p 4000 -e beta --pid tmp/pids/server-beta.pid
残念ながら、これらのサーバの1(他のインスタンスがあることを認識すると停止します。
環境alpha
開始:
=> Booting Puma
=> Rails 5.0.0.1 application starting in alpha on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.6.0 (ruby 2.3.1-p112), codename: Sleepy Sunday Serenity
* Min threads: 5, max threads: 5
* Environment: alpha
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop
環境beta
開始:
=> Booting Puma
=> Rails 5.0.0.1 application starting in beta on http://0.0.0.0:4000
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.6.0 (ruby 2.3.1-p112), codename: Sleepy Sunday Serenity
* Min threads: 5, max threads: 5
* Environment: beta
* Listening on tcp://0.0.0.0:4000
Use Ctrl-C to stop
環境alpha
再起動(なぜか分からない!):明らかに
* Restarting...
=> Booting Puma
=> Rails 5.0.0.1 application starting in alpha on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
A server is already running. Check tmp/pids/server-alpha.pid.
Exiting
pid
ファイルをまだ存在する。しかし、別のサーバを起動したときに、サーバを再起動しないようにするにはどうすればよいですか?再起動時にpidfileを削除するようにレールに指示するにはどうすればよいですか?それ以外はどうすればこの問題を処理できますか?
'='はあいにく変わっていませんでした。 pidfileのパスは、いずれにしてもうまく動作します。それは、自動再起動は、停止時にpidfileを消去しないし、開始のために既存のpidfileを認識して拒否するようだ... – wurfmaul