ठीक है, इसलिए मैं खुद को पुनरारंभ करने के लिए रेल में एक क्रिया बनाना चाहता हूं। मैं एक छोटे से खोज किया था और पाया:रेल के भीतर से रेल को पुनरारंभ कैसे करें?
http://snippets.dzone.com/posts/show/5002
कौन सा 2 आदेशों पता चलता है, एक को रोकने के लिए और एक अन्य को पुनः आरंभ करने। निम्नलिखित मारता:
ps -a|grep "/usr/local/bin/ruby script/server"|grep -v "grep /usr"|cut -d " " -f1|xargs -n 1 kill -KILL $1
-HUP संकेत मेरे लिए पुन: प्रारंभ नहीं होता है, तो मैं उपरोक्त आदेश वध करने की कोशिश की (समायोजित इतना आदेश कैसे मैं Ubuntu के तहत सर्वर शुरू हो गया था के साथ ठीक काम किया):
ps -eaf|grep "ruby script/server"|grep -v grep|cut -d " " -f3|xargs -n 1 kill -KILL $1;script/server
यह मेरा वातावरण में ठीक काम करता है, तो मैं इसे निष्पादित करने के लिए एक कार्रवाई स्थापित करने का प्रयास:
def restart
fork { exec "ps -eaf|grep \"ruby script/server\"|grep -v grep|cut -d \" \" -f3|xargs -n 1 kill -KILL $1;script/server" }
redirect_to "/server_maintenance"
end
कार्रवाई सर्वर ठीक मारता है, लेकिन वास्तव में वापस यू सर्वर शुरू नहीं करता है पी:
=> Booting Mongrel
=> Rails 2.3.2 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Exiting
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel/tcphack.rb:12:in `initialize_without_backlog': Address already in use - bind(2) (Errno::EADDRINUSE)
from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel/tcphack.rb:12:in `initialize'
from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:93:in `new'
from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:93:in `initialize'
from /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/handler/mongrel.rb:10:in `new'
from /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/handler/mongrel.rb:10:in `run'
from /usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/commands/server.rb:111
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from script/server:3
मुझे समझ में नहीं आ रहा है कि जब मैंगेल अभी निकल गया है तो पता क्यों पहले से उपयोग में है।
मैं इस सवाल पाया:
How do you restart Rails under Mongrel, without stopping and starting Mongrel
लेकिन संकेत, मेरे वातावरण में पुन: प्रारंभ करने का कारण नहीं वे सिर्फ प्रक्रिया की हत्या खत्म करो।
किसी के पास क्या काम हो सकता है पर कोई विचार है? मेरे पर्यावरण पर कुछ नोट्स के लिए: मैंने रूबीजम्स और मोंगेल के एक नए संस्करण से रेल स्थापित किए। मैं सर्वर शुरू करने के लिए स्क्रिप्ट/सर्वर का उपयोग करता हूं, जो निश्चित रूप से Mongrel का उपयोग करता है। मैं उबंटू हार्डी हेरॉन पर हूं।
प्रतिक्रिया के लिए धन्यवाद! जवाब देने से पहले मुझे वास्तव में थोड़ा सा काम मिल गया, लेकिन लिंक बहुत ज्यादा दिखाता है कि मैं इसे कैसे काम कर रहा हूं, इसलिए उथल-पुथल होगा! –