Đối với ứng dụng RubyOnRails-App của tôi, tôi phải bắt đầu một công việc nền khi kết thúc quá trình triển khai Capistrano. Đối với điều này, tôi đã thử sau đây trong deploy.rb:Khởi động các tác vụ nền với Capistrano
run "nohup #{current_path}/script/runner -e production 'Scheduler.start' &", :pty => true
Đôi khi làm việc này, nhưng phần lớn thời gian nó không bắt đầu quá trình (= không được liệt kê trong ps -aux). Và không có thông báo lỗi. Và không có nohup.out, không có trong thư mục chính và không nằm trong thư mục ứng dụng đường ray.
Tôi đã thử sử dụng bẫy ('SIGHUP', 'IGNORE') trong scheduler.rb thay vì nohup, nhưng kết quả là như nhau.
Cách duy nhất để làm việc đó là xóa ": pty => true" và thực hiện Ctrl-C thủ công ở cuối "triển khai giới hạn". Nhưng tôi không thích điều này ...
Có cơ hội nào khác để gọi ra Scheduler.start này không? Hoặc để nhận thêm một số thông báo lỗi?
Tôi đang sử dụng Rails 2.3.2, 2.5.8 Capistrano, Ubuntu Hardy trên Server
Bất kỳ gợi ý nào? Vẫn đang đấu tranh với việc khởi động lại nền ở đây ... –