Ruby on Rails als System ausführen

845
nan008

OS: Centos 7

Ich versuche, Snorby als systemd auszuführen, aber die Skripte starten nicht richtig

Ich kann ein Bündel exec Schienen-Server -e Entwicklung -b 0.0.0.0 auf der Befehlszeile ausführen, während es sich im Snorby-Ordner ohne Probleme befindet. Wenn ich es jedoch in ein Skript stecke und es mit systemctl ausführe, funktioniert es nicht richtig.

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

Statusausgabe

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 
0

2 Antworten auf die Frage

0
Jayaprakash

In meinem Fall hat es funktioniert, als ich vor dem Skript 'bash -l' wie unten verwendet habe.

ExecStart = / bin / bash -l 'Ihr Ruby-Befehl oder -Skript'

Centos 7 hat einige Probleme beim Laden von Ruby-Umgebungsvariablen mit systemd. Es hat jedoch auf Ubuntu ohne die Option -l funktioniert.

-2
nan008

Ich finde es heraus - Sie müssen Thin auf Systemd starten

Bitte klären Sie diese Antwort und fügen Sie ein wenig mehr Kontext hinzu, um Ihre Vorschläge genau und detaillierter zu vermitteln, damit andere klar verstehen, was Sie getan haben. Pimp Juice IT vor 6 Jahren 1