2013-06-17 3 views
3

Я искал какое-то время при создании рабочих узлов в собственном приложении для облаков. Я планирую иметь группу автообновления рабочих узлов, вытягивающих задания из очереди, ничего особенного там.Сохранение Ruby Service на Elastic Beanstalk

Мне просто интересно, существует ли какой-либо лучший способ убедиться, что скрипт (например, ruby) работает постоянно? Мое предположение заключается в том, что у вас есть сценарий, который проверяет очередь на задания и спит в течение нескольких секунд или около того, если запрос задания не возвращает никакого нового задания.

Что действительно привлекло мое внимание, это ключ Services в разделе пользовательской конфигурации Linux в AWS Elastic Beanstalk Documentation.

00_start_service.config

services: 
    sysvinit: 
    <name of service>: 
     enabled: true 
     ensureRunning: true 
     files: "<file name>" 
     sources: "<directory>"  
     packages: 
      <name of package manager>: 
      <package name>: <version> 
     commands: 
     <name of command>: 

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html

пример они дают это ..

services: 
    sysvinit: 
    myservice: 
     enabled: true 
     ensureRunning: true 

Я нашел пример и документацию крайне неопределенными, и я понятия не имею, как получить моя собственная служба работает и запускается с использованием этого ключа конфигурации, что означает, что я даже не знаю, что это то, что я хочу или должен использовать. Я попытался создать исполняемый файл ruby ​​и поместить имя в поле, но не повезло.

Я попросил форумы AWS получить дополнительные разъяснения и не получил ответа.

Если у кого есть какие-либо идеи или указания относительно того, как это может быть достигнуто, я был бы очень признателен. Спасибо!

ответ

0

я решил не использовать раздел «услуги» из конфигурационных файлов EB, а не только с помощью «команды» ..

я построить сервисный монитор в рубин, который контролирует данный системный процесс (в данном случае мой сервис).

Служба сама по себе представляет собой скрипт, бесконечно чередующийся с задержками, основанными на длительном времени опроса для службы очереди.

Задание cron запускает монитор каждую минуту, и если служба отключена, он перезапускается.

+0

Я столкнулся с аналогичной проблемой, но с Python. Не запускает ли команда процесс установки или вы вызываете его как процесс bg («&»)? – winwaed

+0

@winwaed эй, извините за последнее уведомление. Я начал использовать Upstart, он позволяет вам создать системный сервис и поддерживать его работу! – johntraver

+0

Спасибо, я посмотрю. – winwaed

0

Синтаксис для файлов в документации кажется неправильным. Следующие работы для меня (обратите внимание на квадратные скобки вместо кавычек):

services: 
    sysvinit: 
    my_service: 
     enabled: true 
     ensureRunning: true 
     files : [/etc/init.d/my_service]