Для моего приложения RubyOnRails мне нужно запустить фоновое задание в конце развертывания Capistrano. Для этого я попробовал следующее в deploy.rb:
run "nohup #{current_path}/script/runner -e production 'Scheduler.start' &", :pty => true
Иногда это работает, но большую часть времени он не запускает процесс (= не указан в ps -aux). И нет сообщений об ошибках. И нет nohup.out, ни в домашнем каталоге, ни в каталоге приложения rails.
Я попытался использовать trap ('SIGHUP', 'IGNORE') в scheduler.rb вместо nohup, но результат тот же.
Единственный способ заставить его работать - это удалить «: pty => true» и выполнить Ctrl-C вручную в конце «cap deploy». Но мне это не нравится ...
Есть ли другие шансы для вызова этого Scheduler.start? Или получить еще несколько сообщений об ошибках?
Я использую Rails 2.3.2, Capistrano 2.5.8, Ubuntu Hardy на сервере