Problem
会社での話ですが、OS起動後、Thin_Redmine と Thin_Redmine2 が停止していることがある。
何故だかは不明ですが、BitNamiインストール配下のruby関係のファイルが壊れているために、ruby関係であるthinが起動しない模様。
ただ、膨大な数のruby関係のファイルから壊れているファイルだけを探すのは至難の業。
そのための問題を見つける手段。
Solution1
スタートメニューからBitnami Redmine Stack を使用する を起動し、コマンドプロンプトを立ち上げます。
それで、どこでもいいので、bundle を実行できるフォルダに移動します。
多分、htdocsが最短。
1 | $ cd apps\redmine\htdocs |
と実行します。
この時、rbファイル や gemspecファイル 壊れていると、rubyが動かないので、
1 | C:\BitNami\redmine-3.2.2-0\ruby\lib\ruby\gems\2.1.0\specifications\default\json-1.8.1.gemspec:2: invalid multibyte char (UTF-8) |
のように該当するファイルがエラーを吐きますので、正常なファイルと置き換えます。
Solution2
Windows版のthinは -log オプションが使えません。
apps\redmine\htdocs\vendor\bundle\ruby\2.1.0\gems\thin-1.6.1-x86-mingw32\lib\thin\runner.rb 内の下記の記述を見てください。
1 | unless Thin.win? # Daemonizing not supported on Windows |
Windowsでは、サポートしていない旨があります。
ここを改造しても無駄です。
実際にログを吐く処理と思しき、apps\redmine\htdocs\vendor\bundle\ruby\2.1.0\gems\thin-1.6.1-x86-mingw32\lib\thin\daemonizing.rb に、
1 | def daemonize |
とあるので、無意味でしょう。
なので、ログではなく、**–debug** オプションを使います。
で、一度サービスを停止し、Bitnami Redmine Stack を使用する を立ち上げます。
そして、
1 | $ "<InstallDir>\ruby\bin\ruby.exe" "<InstallDir>/apps/redmine\htdocs\bin\thin" start -p 3001 -e production --debug -c "<InstallDir>\apps\redmine\htdocs" -a 127.0.0.1 --prefix /redmine 2> F:\thin_debug.log |
と実行し、しばらくしてから、Ctrl+Cで停止します。2> が重要です。
するといっぱいログがファイルに吐き出されるはずですので、原因がつかめるかもしれません。