Для моего 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 в конце "развертывания крышки". Но мне это не нравится...
Есть ли еще какие-либо шансы вызвать этот Scheduler.start? Или получить еще несколько сообщений об ошибках?
Я использую Rails 2.3.2, Capistrano 2.5.8, Ubuntu Hardy на сервере