後へ      Topへ      次へ

サービス化: nssm

Railsサーバーを実行する際、
今までは PowerShell を起動していました。

本番環境では、 サービス化するのが良いでしょう。

サービス化しない場合は、
サーバーOS を再起動する度に起動し直す必要があります。  
起動用バッチファイルを作ってスタートアップに登録するでも構わないのですが、  
そうすると、Railsサーバーを再起動するのが面倒になります。  

 

起動用バッチファイル作成

Railsサーバーを起動する前段階で設定が必要なので、
まずはバッチファイルを作ります。
下記は一例です。必要に合わせて変えてください。
ファイル名は rails_start_book_mgmt.bat としておきます。

@echo off
set RUBYDIR=C:\Ruby34-x64
set GEM_HOME=%RUBYDIR%\lib\ruby\gems\3.4.0
set GEM_PATH=%RUBYDIR%\lib\ruby\gems\3.4.0
set PATH=%RUBYDIR%\bin;%PATH%
REM
REM proxy 必要なら設定
REM set HTTP_PROXY=http://username:password@proxy.my_domain.com:8080
REM set HTTPS_PROXY=http://username:password@proxy.my_domain.com:8080
REM
REM Railsアプリのルートに移動。自環境に合わせて設定
cd /d C:\railsProjects\book_mgmt
REM
REM サブフォルダ設定
set RAILS_RELATIVE_URL_ROOT=/book_mgmt
REM
REM Railsサーバー起動
ruby bin/rails s -e production

 

nssm

以下の手順で、サービス化します。

  1. NSSM Download から、
    Featured pre-release nssm 2.24-101-g897c7ad をダウンロードします。
    (Latest release は Windows10 Creators Update 以降で起動しない問題があるといわれています。)
  2. ZIP を展開し、
    win64 フォルダにある nssm.exe を使用します。
  3. 管理者権限でコマンドプロンプトを起動。
  4. nssm.exe install
    と実行。
  5. installer が起動したら、Application タブで以下の通りに入力
    Path: → rails_start_book_mgmt.bat を Full Path で。
    Startup directory: → Railsアプリのルートフォルダ。
    Arguments: → ブランクのままでOK
    Service name: → お好みで。本章では rails_start_book_mgmt とします。

    e.g.
    Path: C:\railsProjects\rails_start_book_mgmt.bat
    Startup directory: C:\railsProjects\book_mgmt
    Arguments:
    Service name: rails_start_book_mgmt

  6. Install service ボタンを押し、
    Service “rails_start_book_mgmt” installed Successfully!
    と表示されれば OK。サービスに登録されます。

登録したサービスを起動します。

  1. Windows のサービスを起動。
  2. “rails_start_book_mgmt” を探し、
    右クリック → 開始

WEBアプリを実行してみます。
ブラウザで http://localhost:3000/book_mgmt/ を開いて、
動作すれば OK です。

Railsアプリのコードを変更したら、
ruby bin/rails assets:precompile RAILS_ENV=production
した後、
サービス rails_start_book_mgmt の再起動が必要です。

途中で nssm の設定を変えたくなったら、
ファイル名を指定して実行 → regedit
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\rails_start_book_mgmt\Parameters
で AppDirectory、Application、AppParameters を編集してください。

後へ      Topへ      次へ