Запуск Ruby on Rails от имени systemd

805
nan008

ОС: Centos 7

Я пытаюсь запустить Snorby как systemd, но сценарии запускаются неправильно

Я могу выполнить команду bundle exec rails server -e development -b 0.0.0.0 в командной строке, находясь в папке Snorby, без каких-либо проблем, но когда я помещаю его в сценарий и выполняю с помощью 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 
0

2 ответа на вопрос

0
Jayaprakash

В моем случае это работало, когда я использовал 'bash -l' перед сценарием, как показано ниже.

ExecStart = / bin / bash -l 'ваша команда или скрипт ruby'

Я думаю, что Centos 7 имеет некоторые проблемы с загрузкой переменных среды ruby ​​с помощью systemd. Он работал на Ubuntu без опции -l, хотя.

-2
nan008

Я разобрался - нужно запустить Thin на Systemd

Пожалуйста, поясните и добавьте немного больше контекста к этому ответу, чтобы передать то, что вы предлагаете, более подробно, чтобы другие четко поняли, что вы сделали для решения. Pimp Juice IT 7 лет назад 1

Похожие вопросы