में बुरा फ़ाइल डिस्क्रिप्टर पर मैक ओएस एक्स शेर रूबी v1.8.7 और डेमॉन v1.1.8 का उपयोग करना, मैं एक उपभोक्ता प्रक्रिया लिख सकते हैं और यह एक Dameon रूप में चलाने के प्राप्त करने का प्रयास कर रहा हूँ यह शुरू नहीं करता है और बदले में एक लंबे ट्रैस बैक, जो कुछ इस तरह चला जाता है फेंकता है:रूबी डेमॉन
E, [2012-05-28T19:34:16.199770 #29357] ERROR -- : Bad file descriptor (Errno::EBADF) /opt/local/lib/ruby/gems/1.8/gems/daemons-1.1.8/lib/daemons/daemonize.rb:134:in `for_fd' /opt/local/lib/ruby/gems/1.8/gems/daemons-1.1.8/lib/daemons/daemonize.rb:134:in `close_io' /opt/local/lib/ruby/gems/1.8/gems/daemons-1.1.8/lib/daemons/daemonize.rb:134:in `initialize' /opt/local/lib/ruby/gems/1.8/gems/daemons-1.1.8/lib/daemons/daemonize.rb:134:in `new' /opt/local/lib/ruby/gems/1.8/gems/daemons-1.1.8/lib/daemons/daemonize.rb:134:in `close_io' /opt/local/lib/ruby/gems/1.8/gems/daemons-1.1.8/lib/daemons/daemonize.rb:75:in `call_as_daemon' /opt/local/lib/ruby/gems/1.8/gems/daemons-1.1.8/lib/daemons/application.rb:258:in `start_proc' /opt/local/lib/ruby/gems/1.8/gems/daemons-1.1.8/lib/daemons/application.rb:295:in `start' /opt/local/lib/ruby/gems/1.8/gems/daemons-1.1.8/lib/daemons/monitor.rb:51:in `watch' /opt/local/lib/ruby/gems/1.8/gems/daemons-1.1.8/lib/daemons/monitor.rb:51:in `fork' /opt/local/lib/ruby/gems/1.8/gems/daemons-1.1.8/lib/daemons/monitor.rb:51:in `watch' /opt/local/lib/ruby/gems/1.8/gems/daemons-1.1.8/lib/daemons/monitor.rb:45:in `each' /opt/local/lib/ruby/gems/1.8/gems/daemons-1.1.8/lib/daemons/monitor.rb:45:in `watch' /opt/local/lib/ruby/gems/1.8/gems/daemons-1.1.8/lib/daemons/monitor.rb:44:in `loop' /opt/local/lib/ruby/gems/1.8/gems/daemons-1.1.8/lib/daemons/monitor.rb:44:in `watch' /opt/local/lib/ruby/gems/1.8/gems/daemons-1.1.8/lib/daemons/monitor.rb:84:in `start_with_pidfile' /opt/local/lib/ruby/gems/1.8/gems/daemons-1.1.8/lib/daemons/monitor.rb:64:in `fork' /opt/local/lib/ruby/gems/1.8/gems/daemons-1.1.8/lib/daemons/monitor.rb:64:in `start_with_pidfile' /opt/local/lib/ruby/gems/1.8/gems/daemons-1.1.8/lib/daemons/monitor.rb:111:in `start' /opt/local/lib/ruby/gems/1.8/gems/daemons-1.1.8/lib/daemons/application_group.rb:149:in `create_monitor' /opt/local/lib/ruby/gems/1.8/gems/daemons-1.1.8/lib/daemons/application.rb:284:in `start' /opt/local/lib/ruby/gems/1.8/gems/daemons-1.1.8/lib/daemons/controller.rb:70:in `run' /opt/local/lib/ruby/gems/1.8/gems/daemons-1.1.8/lib/daemons.rb:197:in `run_proc' /opt/local/lib/ruby/gems/1.8/gems/daemons-1.1.8/lib/daemons/cmdline.rb:109:in `call' /opt/local/lib/ruby/gems/1.8/gems/daemons-1.1.8/lib/daemons/cmdline.rb:109:in `catch_exceptions' /opt/local/lib/ruby/gems/1.8/gems/daemons-1.1.8/lib/daemons.rb:196:in `run_proc' users/delete_consumer.rb:40
मुझे यकीन है कि क्या इस मुद्दे खड़ी कर रहा है नहीं कर रहा हूँ? निर्देशिका का नाम, लॉग फ़ाइल नाम सभी मान्य हैं। मैं इन कॉन्फ़िगरेशन के साथ MyConsumer का एक उदाहरण बनाने में सक्षम हूं और एक स्टैंडअलोन प्रोग्राम/कंसोल से अपने # सदस्यता रद्द करने में सक्षम हूं।
तो, रुबी डेमन्स के साथ कुछ अनुभव प्राप्त करने के बाद, मुझे एहसास हुआ है कि ऐसी कोई त्रुटि यह दर्शाती है कि अंतर्निहित ब्लॉक (जो राक्षसी है) में त्रुटियां हैं। अंतर्निहित ब्लॉक में सभी त्रुटियों को ठीक करने से यह त्रुटि भी ठीक हो जाती है। –
मुझे एक ही समस्या थी। अपने निष्कर्ष साझा करने के लिए धन्यवाद! – vpsz
दूसरों की मदद करने के लिए, अपने स्वयं के प्रश्न का उत्तर दें, ताकि इसका औपचारिक उत्तर हो। –