web-dev-qa-db-ja.com

実行中Ruby on Rails as systemd

OS:Centos 7

Snorbyをsystemdとして実行しようとしていますが、スクリプトが正しく起動していません

Snorbyフォルダーにいるときにコマンドラインでbundleexec Rails server -e development -b 0.0.0.0を問題なく実行できますが、スクリプトに入れてsystemctlで実行するとそうではありません正しく機能しています。

[Service] WorkingDirectory=/tmp/snorby Environment=Rails_ENV=development ExecStart=/usr/local/rbenv/shims/bundle exec Rails server -d -b 0.0.0.0

ステータス出力

snorby.service - Snorby ConfiServ

Loaded: loaded (/usr/lib/systemd/system/snorby.service; enabled; vendor preset: disabled)

Active: inactive (dead) since Thu 2017-08-03 13:25:34 UTC; 1min 18s ago
  Process: 5533 ExecStart=/usr/local/rbenv/shims/bundle exec Rails server -d -b 0.0.0.0 (code=exited, status=0/SUCCESS)
 Main PID: 5533 (code=exited, status=0/SUCCESS)

Aug 03 13:25:32 TEST-02 systemd[1]:   
 Started Snorby ConfiServ.

Aug 03 13:25:32 TEST-02 systemd[1]:  
 Starting Snorby ConfiServ...

Aug 03 13:25:34 TEST-02 bundle[5533]:  
 /usr/local/rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/gems/actionpack-3.2.22/lib/action_dispatch/http/mime_type.rb:102: warning: already initialized constant Mime::PDF

Aug 03 13:25:34 TEST-02 bundle[5533]:  
 /usr/local/rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/gems/actionpack-3.2.22/lib/action_dispatch/http/mime_type.rb:102: warning: previous definition of PDF was here  

Aug 03 13:25:34 TEST-02 bundle[5533]:  
  No time_zone specified in snorby_config.yml; detected time_zone: UTC

Aug 03 13:25:34 TEST-02 bundle[5533]: => Booting Thin

Aug 03 13:25:34 TEST-02 bundle[5533]: => Rails 3.2.22 application starting in development on http://0.0.0.0:3000
1
nan008

私の場合、以下のようにスクリプトの前に「bash-l」を使用すると機能しました。

ExecStart =/bin/bash -l'your Ruby command or script '

Centos7にはsystemdでのRuby環境変数のロードに問題があると思います。ただし、-lオプションなしでubuntuで動作しました。

1
Jayaprakash