LoginSignup
0
0

Rails7 on Windows をnssmでサービス化する

Last updated at Posted at 2023-05-18

Production 環境での起動

Apacheやnginxを立てるほどでもなく、pumaを用いる場合、公開用IPアドレスをバインドするため、通常起動のコマンドは以下のようになる。

rails s -u puma -e production -b 192.168.1.1

railsコマンドで起動しているが、実体はどこにあるのか。コマンドプロンプトもしくはPowerShellで確認する。

C:\WINDOWS\system32>where rails
C:\Users\alice\AppData\Local\Microsoft\WindowsApps\rails
C:\Users\alice\AppData\Local\Microsoft\WindowsApps\rails.bat
PS C:\WINDOWS\system32> Get-Command rails|fl


Name            : rails.bat
CommandType     : Application
Definition      : C:\Users\alice\AppData\Local\Microsoft\WindowsApps\rails.bat
Extension       : .bat
Path            : C:\Users\alice\AppData\Local\Microsoft\WindowsApps\rails.bat
FileVersionInfo : File:             C:\Users\alice\AppData\Local\Microsoft\WindowsApps\rails.bat
                  InternalName:
                  OriginalFilename:
                  FileVersion:
                  FileDescription:
                  Product:
                  ProductVersion:
                  Debug:            False
                  Patched:          False
                  PreRelease:       False
                  PrivateBuild:     False
                  SpecialBuild:     False
                  Language:

nssm でサービス化する

  1. nssm をダウンロードして、適当なフォルダに展開する。ここでは「nssm-2.24」を展開し、「win64」下のものを用いた。
  2. nssm を展開したフォルダで、管理者のコマンドプロンプトからnssm install <サービス名>を実行する。ウィンドウが起動する。
  3. 各項目を設定し、「Install service」を指定する。Railsのフォルダが「C:\Users\alice\source\repos\blog」の場合、以下のようになる。
    Application Path:
    C:\Users\alice\AppData\Local\Microsoft\WindowsApps\rails.bat
    Startup directory:
    C:\Users\alice\source\repos\blog
    Arguments:
    s -u puma -e production -b 192.168.1.1
  4. 以降は、管理ツールの「サービス」で他のサービスと同様に扱える。
    • サービスのログイン(実行アカウント)は「ローカルシステムアカウント」になっているので、必要に応じて変更する。
    • スタートアップの種類は、「自動」となっており、Windowsの再起動時に自動で起動してくれる。
  5. 登録を解除する場合は、管理者コマンドプロンプトからnssm remove <サービス名>を実行する。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0