1

Я недавно начал разработку Ruby on Rails, и я использую Vagrant в качестве виртуальной машины для своего проекта Rails, потому что Windows - ужасная ОС, которую можно использовать для любого вида разработки на Ruby, из-за случайного отсутствия поддержки различных RubyGems.

У меня такой вопрос: я хочу использовать шеллскрипт для запуска трех разных команд в отдельных сеансах экрана DETACHED с соответствующими именами:

"rails" ==>  'rails s'
"mail"  ==>  'mailcatcher --http-ip 0.0.0.0'
"guard" ==>  'bundle exec guard --force-polling'

Я попытался использовать следующее, и это не похоже на работу (startup.sh)

screen -S rails -d -m rails s
screen -S mail -d -m mailcatcher --http-ip 0.0.0.0
screen -S guard -d -m bundle exec guard --force-polling

Безрезультатно, похоже, он не делает то, что я хочу, и я не знаю, делаю ли я что-то неправильно или неправильно запускаю экран. Может кто-то пролить свет на эту ситуацию? Что касается ОС, то это Ubuntu 12.04 LTS (Precise) x86, как виртуальная машина (хотя, я думаю, часть виртуальной машины не должна иметь значения).

Заранее спасибо за любые предложения. Я просто хотел получить способ использовать скрипт-оболочку для запуска моего проекта rails (и связанных служб) за один раз вместо необходимости вручную запускать сеансы экрана каждый раз, когда я поднимаю свой бродячий ящик.

Моя другая мысль заключалась в том, чтобы выяснить, как настроить эти команды для запуска при запуске системы, используя cron или что-то еще?

1 ответ1

2

Вы можете попробовать экранную команду как

 screen -d -m -S screen_name command 

Опция -S просто указывает, в каком окне экрана будет выполняться следующая команда. В соответствии с -d -m man page читает:

 -d -m   Start screen in "detached" mode. This creates a new session but
       doesn't  attach  to  it.  This  is  useful  for  system startup
       scripts. 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .