На данный момент мне не нужно возиться с пассажиром или капистрано. Я просто хочу запускать рельсы при загрузке на порт 3000. Я попытался воспроизвести это руководство для узла сколько мог бегать по рельсам:
Я railsup
сценарий в /etc/init.d/
это выглядит примерно так:
#!/bin/sh
export PATH=$PATH:/usr/local/bin
case "$1" in
start)
cd /root/rails_app; /usr/local/rvm/gems/ruby-2.0.0-p247/bin/rails server -d -p 3005
;;
# starting other stuff
*)
Я также включил это в update-rc.d
Я заставил его работать, но только если я запустил скрипт вручную - он не запускается при загрузке. Есть ли причина, почему ../bin/rails
недоступен при загрузке?
Я полагаю, есть что-то о рубиновых путях \ rvm \ rails, о которых я не знаю? Есть ли способ использовать для этого crontab @reboot?
init.d
Благодаря новой системе распараллеливания System-V вы иметь добавить НАЧАЛЬНАЯ ИНФОРМАЦИЯ часть в верхней части вашего скрипта.
Посмотри на /etc/init.d/README
и попробуйте добавить это в начало вашего скрипта:
#! /bin/sh
### BEGIN INIT INFO
# Provides: rails
# Required-Start: $local_fs $remote_fs
# Required-Stop:
# X-Start-Before: rmnologin
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: Start Rails on port 3000
### END INIT INFO
cron
(и запустить как собственный пользователь)Вы могли бы запустить свой демон при каждой перезагрузке с определенным cron
синтаксис:
crontab -l |
sed '$a@reboot /usr/bin/rail-or-other-bin -arg1 -arg2 -port 3000' |
crontab
Предупреждение выполнение этой команды (crontab
без аргументов и stdin из трубы) изменит ваш crontab
! Видеть man crontab
!
... и попробуйте это без последнего crontab
перед:
crontab -l |
sed '$a@reboot /usr/bin/rail-or-other-bin -arg1 -arg2 -port 3000'
Преимущество этого заключается в том, что демон запускается в пользовательской среде, и ошибки запуска будут отправляться вам по почте обычным способом cron.
Скрипт вообще работает? Я бы попробовал добавить:
echo RAILSUP >/tmp/railsup.log
Если это действительно так, проверяли ли вы журналы, чтобы узнать, в чем ошибка при попытке запуска при загрузке? Лично я бы запустил это в strace и записал все действия в файл для проверки, как только вы войдете в систему. Это, вероятно, даст некоторую подсказку.
это действительно так, вы проверили журналы, чтобы узнать, в чем ошибка при попытке запуска при загрузке? Лично я бы запустил это в strace и записал все действия в файл для проверки, как только вы войдете в систему. Это, вероятно, даст некоторую подсказку.