2015-07-15 2 views
0

Я использую алмаз мастера на моем приложении Ruby on Rails для запуска различных процессов. В файле .env я объявил некоторую логическую переменную, чтобы решить, хочу ли я запускать процесс или нет.Форман условный процесс с .env файлом в Rails

Я хочу, чтобы включить или отключить «maildev», приложение nodejs для обработки электронной почты в локальной сети. Если логическое значение истинно, оно работает отлично, но если изменить его на false, то сбой мастера при запуске.

Вот след от бригадира:

13:20:17 web.1 | started with pid 6583 
13:20:17 mailer.1 | started with pid 6584 
13:20:17 mailer.1 | ====== Maildev server not launched ====== 
13:20:17 mailer.1 | exited with code 0 
13:20:17 system | sending SIGTERM to all processes 
13:20:17 web.1 | terminated by SIGTERM 

мой .env файл:

RACK_ENV=development 
START_MAILDEV=false 

мой PROCFILE:

# Rails server 
web: bin/procfile/web 

# Mail server 
mailer: bin/procfile/maildev 

бен/PROCFILE/maildev:

#!/bin/sh 
if [[ "$RACK_ENV" == 'development' ]]; then 
    if [[ "$START_MAILDEV" == "true" ]]; then 
    maildev 
    echo "====== Maildev server launched ======" 
    else 
    echo "====== Maildev server not launched ======" 
    fi 
fi 

Кто-то знает, что случилось с моим кодом?
Спасибо!

ответ

3

Ваш код в порядке, но когда один из ваших процессов выходит, что делает echo, Foreman выключает все остальные.

Утвержденный способ для запуска только некоторых процессов - the -c flag.

-c, --concurrency

Указать количество каждого типа процесса запуска. Значение, переданное в должно быть в формате процесса = Num, процесс = Num

В вашем случае,

foreman start -c web=1 

Если у вас есть много процессов, и вы хотите, чтобы запустить их все кроме для одного, есть специальное ключевое слово all, а затем вы можете переопределить ту, которую вы не хотите.

foreman start -c all=1,maildev=0 
+0

Спасибо за ваш быстрый ответ! Я буду использовать эту команду сейчас, даже если бы я предпочел просто запустить 'foreman start' и позволить файлу обрабатывать условия – anthony

Смежные вопросы