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 でサービス化する
- nssm をダウンロードして、適当なフォルダに展開する。ここでは「nssm-2.24」を展開し、「win64」下のものを用いた。
- nssm を展開したフォルダで、管理者のコマンドプロンプトから
nssm install <サービス名>
を実行する。ウィンドウが起動する。 - 各項目を設定し、「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
- 以降は、管理ツールの「サービス」で他のサービスと同様に扱える。
- サービスのログイン(実行アカウント)は「ローカルシステムアカウント」になっているので、必要に応じて変更する。
- スタートアップの種類は、「自動」となっており、Windowsの再起動時に自動で起動してくれる。
- 登録を解除する場合は、管理者コマンドプロンプトから
nssm remove <サービス名>
を実行する。