Rails pumaをsystemdで動かす


Ruby on Railsの標準のWebサーバ「puma」ですがCentOSなどのLinux上で本番稼働させる場合は、systemdにすることでプロセスを管理が簡単になります。

systemdの概要については拙著「systemd」をご参照ください。

🍣 pumaのsystemdの設定ファイル

puma用のsystemdの設定ファイルのサンプルです。

[Unit]
Description=Puma HTTP Server
After=network.target

[Service]
# Foreground process (do not use --daemon in ExecStart or config.rb)
Type=simple

# Preferably configure a non-privileged user
# User=

# Specify the path to your puma application root
WorkingDirectory=/var/app/

# Helpful for debugging socket activation, etc.
Environment=RAILS_ENV=production

# The command to start Puma
ExecStart=/var/app/sbin/puma -C config/puma.rb

Restart=always

[Install]
WantedBy=multi-user.target

🏀 Railsにsbin/pumaを準備

Railsのプロジェクト側で次のコマンドを実行し、sbin/pumaを生成します。

bundle binstubs puma --path ./sbin

😀 使い方

# puma.serviceのロード
systemctl daemon-reload

# ブート時に puma.serviceを起動
systemctl enable puma.service

# puma.serviceの起動
systemctl start puma.service

# puma.serviceのステータスチェック
systemctl status puma.service

# puma.serviceの再起動
systemctl restart puma.service

🚜 参考リンク

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍