Генератор скриптов init.d для рубиновых процессов?

У меня есть несколько рубиновых процессов, и для разработки я использовал мастера для управления процессами, теперь в процессе производства я хочу экспортировать процессы и запускать их в каталоге /etc/init.d.

Есть ли какой-нибудь инструмент, который может помочь с этим, создав сценарии и соответствующий PID для /var/run? Я попытался использовать для этого функцию экспорта мастера, но это не сработало, поскольку она может что-то сделать для inittab или upstart, но не для init.d.

Любая помощь будет высоко ценится


person Eki Eqbal    schedule 06.11.2012    source источник
comment
Я предпочитаю использовать God для запуска моих приложений ruby ​​в продакшене.   -  person Sergio Tulentsev    schedule 06.11.2012
comment
Я знаю, но дело не в управлении рубиновыми процессами, я уже использую Monit, но это не тот случай, я просто ищу инструмент, который поможет мне создать скрипт, а не делать это вручную, хочу использовать стандартный init.d с мои процессы   -  person Eki Eqbal    schedule 06.11.2012
comment
Но подождите, monit может запустить ваши программы за вас. Зачем вам нужен отдельный файл init.d?   -  person Sergio Tulentsev    schedule 06.11.2012
comment
потому что monit требует, чтобы я указал файл PID и местоположение запуска и остановки для службы, что именно и делает init.d, помните, что я использую процессы ruby, а не рельсы, поэтому мне нужно будет делать все это вручную, на самом деле форман похоже, он отлично справляется с задачей для выскочки и inittab, но не для init.d ">blog.daviddollar.org/2011/05/06/introduction-foreman.html   -  person Eki Eqbal    schedule 06.11.2012
comment
Ок, я вас понял, В таком случае upstart и inittab недоступны в вашей системе, я так понимаю? В любом случае удачи с вашей проблемой :)   -  person Sergio Tulentsev    schedule 06.11.2012
comment
:( спасибо за ваше желание помочь здесь ..   -  person Eki Eqbal    schedule 06.11.2012
comment
Есть ли причина, по которой вы не можете использовать Upstart?   -  person Dogbert    schedule 06.11.2012
comment
потому что я использую init.d на своем рабочем сервере, и я не хочу рисковать, изменяя это, Ubuntu 11.01 уже поставляется с ним, и я использую его уже долгое время.   -  person Eki Eqbal    schedule 06.11.2012


Ответы (2)


мм, похоже, нет инструмента для его создания, мастер может экспортировать inittabs, upstart, но не init.d, единственный способ - изменить файл:

/etc/init.d/skeleton 

Вам нужно будет немного изменить его, а затем:

chmod +x /etc/init.d/process_name 
sudo update-rc.d process_name defaults
sudo /etc/init.d/process_name (start| stop| reload ) 

Готово . :)

person Eki Eqbal    schedule 07.11.2012

Другой ответ может быть связан с использованием https://github.com/ghazel/daemons gem .

require 'daemons'
require 'process'

Daemons.run('process.rb')

Как только скрипт будет готов, просто вызовите его из командной строки:

ruby process.rb run|start|stop|restart

Эта конфигурация создаст файл «process.pid» в «/var/run», и вы можете использовать monit для наблюдения за процессом с помощью этого файла.

person Eki Eqbal    schedule 07.11.2012