রেল সার্ভার থামাতে পারে না


126

আমি রেলগুলিতে নতুন এবং আমি একটি উবুন্টু মেশিন এবং রুবাইমিন আইডিই ব্যবহার করছি। সমস্যাটি হ'ল আমি রেল সার্ভারটি থামাতে অক্ষম। আমি রেল প্রক্রিয়াটি মেরে সার্ভারটি বন্ধ করার চেষ্টা করেছি। তবে, আমি যখন দৌড়ে যাই pgrep -l rails, তেমন কোনও প্রক্রিয়া খুঁজে পাওয়া যায় না। সুতরাং, আমি কেবল রুবি প্রক্রিয়াগুলি মেরে ফেলতে সক্ষম, তবে, সার্ভারটি থামবে না।

আমি চেষ্টা করেছি ./script/server stop(যেহেতু আমি এটি চালিয়ে দিয়ে শুরু করেছি ./script/server start), তবে, এটি কার্যকর হয়নি। চারপাশে গুগলিং এবং কিছু স্ট্যাকওভারফ্লো পোস্টগুলি সন্ধান করে, আমি লোকালহোস্ট বন্দরের শ্রবণ বন্দরে পরিবর্তন করার চেষ্টা করেছি তবে সফলতা ছাড়াই। কেউ সাহায্য করতে পারে?



@ নতুনবেন আপনি কি সমস্ত প্রক্রিয়া মেরে ফেলতে চান?
লার্নার

@ শ্রী, হ্যাঁ আমি সমস্ত প্রক্রিয়াটি হত্যা করতে চাই
অ্যাপসিলোনস

1
@ নিউবেন আমার নীচের আপডেট হওয়া উত্তরটি দেখুন এবং একবার চেষ্টা করে দেখুন এবং আমাকে জানান
শিখর

উত্তর:


303

আপনি নীচের মত অন্যান্য বন্দর ব্যবহার করতে পারেন:

rails server -p 3001

সাধারণত আপনার টার্মিনালে আপনি Ctrl + Cসার্ভারটি বন্ধ করার চেষ্টা করতে পারেন ।

রেল অন ডিফল্ট সার্ভারে হত্যার অন্য উপায় (যা WEBrick):

kill -INT $(cat tmp/pids/server.pid)

প্রক্রিয়াটির পিআইডি জানতে আপনার টার্মিনালে:

$ lsof -wni tcp:3000

তারপরে, প্রক্রিয়াটি মারতে পিআইডি কলামে নম্বরটি ব্যবহার করুন:

উদাহরণ স্বরূপ:

$ kill -9 PID

এবং আমি যে উত্তরগুলি পেয়েছি তার মধ্যে কয়েকটি হ'ল:

রেল সার্ভারটি চলমান অবস্থায় বন্ধ করতে, টিপুন:

CTRL-C
CTRL-Z

আপনি ফিরে নিয়ন্ত্রণ পেতে হবে bash। তারপরে টাইপ করুন (বাদে $):

$ fg

এবং এটি প্রক্রিয়াতে ফিরে যাবে এবং তারপরে Rails sসঠিকভাবে বাইরে চলে যাবে ।

এটি কিছুটা বিরক্তিকর তবে এই প্রক্রিয়াটি ম্যানুয়ালি মারছে। এটি খুব খারাপ নয় এবং এটি আমি সবচেয়ে ভাল খুঁজে বের করতে পারি।

আপডেট উত্তর:

আপনি নামে killall -9 railsচলমান সমস্ত অ্যাপ্লিকেশনকে হত্যা করতে ব্যবহার করতে পারেন rails

killall -9 rails


দুঃখিত, lsof -wni tcp: 3000 কিছুই দেয় না, এবং আমার কাছে কোনও tmp / pids / ফোল্ডার নেই
epsilones

যদি ওয়েব্রিক চলমান থাকে, তবে এর পিআইডি {APP_ROOT}/tmp/pids/server.pidফাইলে রয়েছে সুতরাং আপনাকে এটির সন্ধান করতে হবে না - যতক্ষণ না সার্ভার চলছে। সুতরাং, যদি ctrl-cআপনি কেবল এটির পরিবর্তে অন্য টার্মিনালে কিল কমান্ডটি চালান, এটি অবিলম্বে ওয়েব্রিক সার্ভারকে হত্যা করবে kill
শিক্ষার্থী

আমি যখন কিল্লাল -৯ রেল চালাচ্ছি, আমি 'এরকম কোনও প্রক্রিয়া খুঁজে পাওয়া যায়নি' বলে মেসেজটি পাই?
epsilones

বিটিডব্লিউ, {APP_ROOT} / tmp / pids / ফোল্ডারটি প্রকৃতপক্ষে বিদ্যমান তবে এটি খালি
অ্যাপসিলোন

1
এই আদেশগুলির কোনওটিই আমার পক্ষে কিছু করেনি। তবে মেশিনটি রিবুট করার ফলে সমস্যাটি স্থির হয়েছে।
হার্ব মীহান

51

আপনি নিম্নলিখিত পদ্ধতিতে গ্রেপ কমান্ড ব্যবহার করতে পারেন,

ps aux | grep rails

এবং তারপর

kill -9 {process_id} 

প্রকৃতপক্ষে, এই কম্যান্ডটি কেবল '0:00 গ্রেপ - কালার = অটোর রেল' ধরেছে, যা আমি অনুমান করি
গ্রেপ

ধন্যবাদ এই সমাধানটি সার্ভারের জন্য কাজ করছে যা এখনও টার্মিনাল বলটি বন্ধ করে চলে। ভাল
ksugiarto

এবং যদি আমার অনেকগুলি প্রক্রিয়া থাকে এবং আমি একে একে ম্যানুয়ালি হত্যা করতে চাই না তবে কী হবে?
নিকোলোয় কোন্ড্রাটেনকো

আপনি তাদের killall -9 rails
সমস্তকে

সার্ভারটি খুঁজতে আমাকে করতে হয়েছিলps aux | grep puma
সামি বর্নবাউম

27

pkill -9 rails রেল সমস্ত প্রক্রিয়া হত্যা

আপডেট উত্তর

ps aux|grep 'rails'|grep -v 'grep'|awk '{ print $2 }'|xargs kill -9

এটি যে কোনও চলমান রেল প্রক্রিয়াটিকে হত্যা করবে। অন্য কোনও প্রক্রিয়া মেরে ফেলার জন্য 'রেলগুলি' অন্য কিছু দিয়ে প্রতিস্থাপন করুন।


18

সার্ভার প্রক্রিয়াটি হত্যার পদক্ষেপগুলি নিম্নলিখিত:

1. lsof -i tcp:3000

2. kill -9 1234

1234প্রক্রিয়াটির পিআইডি কোথায় : লোকালহোস্ট: পদক্ষেপ 1 এ 3000 প্রদর্শন।

অথবা

ফাইল (সার্ভার.পিড) সরিয়ে Rails.root/tmp/pids/সার্ভার পুনরায় আরম্ভ করুন।

অথবা

কমান্ড ব্যবহার করে অন্য বন্দরে অ্যাপ খুলুন:

rails s -p 3001


15

আমার ম্যাক এ killall -9 railsকাজ করে না। কিন্তু killall -9 rubyনা।


একই। এটাও COMMANDমান।
IIllIll

10

আমি সাধারণত:

killall ruby

অথবা

pkill -9 ruby

সব রুবি সম্পর্কিত প্রসেস যে মত দৌড়াচ্ছে মেরে ফেলবে যা rails server, rails consoleইত্যাদি


আপনি যদি পিকেল -9 বা কিল -9 জানেন না, তবে এটি অন্যান্য রুবি প্রক্রিয়াগুলিকেও মেরে ফেলতে পারে তা লক্ষ্য করা ভাল, উদাহরণস্বরূপ রুবাইমাইন আইডিই।
কেজেল

4

1. সহজভাবে পিড ফাইলটি রেল অ্যাপ্লিকেশন ডিরেক্টরি থেকে মুছুন

Rails_app -> tmp -> pids -> pid file

ফাইলটি মুছুন এবং চালান

rails start


২.০ এবং তার বেশি রেলের জন্য, আপনি এই আদেশটি ব্যবহার করতে পারেন

rails restart


3

ctrl+cআপনার ওয়েব্রিক সার্ভারটি বন্ধ করতে ব্যবহার করুন ।

দুর্ভাগ্যক্রমে যদি এটি কাজ না করে তবে জোর করে টার্মিনালটি বন্ধ করে পুনরায় চালু করুন।

আর একটি কৌশল

1. open your system-monitor(a gui application) on ubuntu

2. Select processes tab 

3. Then look for a process having name 'ruby'

4. End that process

এমনকি আপনি আবার চালু করেছেন কখনও কখনও সার্ভারটি চলমান। কারণ সার্ভারটি থামানোর জন্য আমাদের টেম্পিড / পিডকে হত্যা করতে হবে
লার্নার

তবে সাধারণত, টার্মিনালটি সমাপ্তি প্রক্রিয়াটি তার অগ্রভাগ প্রক্রিয়াটি বোকোজ বন্ধ করে এবং টার্মিনালে চলে।
গোপাল এস রাঠোর

3

Tmp / pids ফোল্ডার থেকে সার্ভার.পিড মুছুন। আমার ক্ষেত্রে ত্রুটিটি ছিল: একটি সার্ভার ইতিমধ্যে চলছে। / Home/sbhatta/myapp/tmp/pids/server.pid দেখুন।

সুতরাং, আমি সার্ভার.পিড মুছে ফেলছি

rm /home/sbhatta/myapp/tmp/pids/server.pid তারপর চালান rails s


3

পদক্ষেপ 1: আইটেমগুলি কি খাচ্ছে তা 3000 বন্দরটি সন্ধান করুন।

lsof -i:3000

পদক্ষেপ 2: নামকরণ প্রক্রিয়া সন্ধান করুন

ম্যাকের জন্য

ruby      TCP localhost:hbci (LISTEN)

উবুন্টুর জন্য

ruby      TCP *:3000 (LISTEN)

পদক্ষেপ 3: প্রক্রিয়াটির পিআইডি সন্ধান করুন এবং এটি হত্যা করুন।

kill -9 PID


2

আমি killall -9 railsশ্রীর পরামর্শ মতো ব্যবহার করেছি এবং এটি কার্যকর হয়নি। আমি আদেশটি সামঞ্জস্য করেছি killall -9 rubyএবং সার্ভারটি তত্ক্ষণাত বন্ধ হয়ে গেল।

TL; ড: killall -9 ruby



1

রেল সার্ভার যখন এটি শুরু না করে তার অর্থ এটি ইতিমধ্যে চলছে তখন আপনি নতুন পোর্ট যেমন উদাহরণ দিয়ে শুরু করতে পারেন।

rails s -p 3001

বা এটি শুরু হয়ে যায় এবং আপনি রেল ডিরেক্টরি কাঠামোয় এটি রেল সার্ভার শুরু করে তাতে টেম্প্প ফোল্ডারটি মুছতে চান সেক্ষেত্রে থেমে যায়


1

/tmp/tmp/server.pid পরীক্ষা করুন

ভিতরে একটি pid আছে।

সাধারণত আমি সেমিডিতে অসুস্থ হয়ে "কিল -9 THE_PID" করি


আমার এই পথ নেই, উবুন্টু মেশিনে এটি কোথায় থাকতে পারে?
epsilones

এটি লুকিয়ে আছে ... আপনার লুকানো ফাইলগুলি দেখানোর জন্য আপনার অ্যাপ ফোল্ডারে যান, সিটিআরএল + এইচ করুন, তবে আপনি এটি দেখতে সক্ষম হবেন
নিচ

1

আমি উইন্ডোজটিতে লক্ষ্য করেছি (আমি 10 ব্যবহার করছি তবে এটি নিশ্চিত নয় যে ওলারের ক্ষেত্রে এটি একই রকম)। আপনি যদি cmd.exe এবং ctrl + c ব্যবহার করেন তবে রেসাল সার্ভারটি সঠিকভাবে বন্ধ হয়ে যায়।

তবে, আপনি যদি গিট ব্যাশ ব্যবহার করেন তবে তা হয় না। এটি বলেছে এটি আছে তবে আপনি যখন টিএমপি পিডগুলি দেখেন, এটি এখনও আছে।

গিট ব্যাশ সহ একটি বাগ হতে পারে?


1

killall -9 rubyসমস্ত রুবি প্রক্রিয়া মেরে ফেলবে, এবং কমপক্ষে আমার মেশিনে, রেল সার্ভারগুলি রুবি প্রক্রিয়া হিসাবে উপস্থিত হবে। killall -9 railsআরও সুনির্দিষ্ট এবং রেল সার্ভারের পুরানো সংস্করণগুলির জন্য কাজ করে না (এটি একটি 'রেল দেয়: কোনও প্রক্রিয়া খুঁজে পাওয়া যায় নি' কারণ প্রক্রিয়াটির নাম রুবি)

কিছুক্ষণ আগে এই সমস্যাটি মোকাবিলা করেছে। অ্যাক্টিভ্যাডমিনে একটি ফর্ম জমা দেওয়ার পরে, রেল সার্ভারটি কেবল ফাঁসি দেওয়া হয়েছিল এবং আমি সাধারণ উপায়গুলি ব্যবহার করে এটি হত্যা করতে অক্ষম হয়েছি (এমনকি সিটিআর + z এর পরেও এটি পটভূমিতে চলছে)। শিক্ষার্থীদের উত্তর সাহায্য করেছে, কিন্তু এই আদেশের জন্য প্রক্রিয়া আইডি দরকার হয় না need


0

এই প্রশ্নের জন্য দেরী। এখানে আমার 2 সেন্ট। আমি যখন সার্ভারটিতে অ্যাক্সেস না করি তখন এটি বন্ধ করার জন্য আমি একটি রেক টাস্ক করেছি। আমি যদিও শুধুমাত্র ম্যাক পরীক্ষা করেছি।

এটির সাহায্যে আপনি কেবল আপনার প্রকল্পে এটি যুক্ত করতে পারেন তারপরে রেক কমান্ডটি চালান।

আপনি এখানে যান:

সংক্ষিপ্ত লিঙ্ক: -সাম্প্রতিক সংস্করণটি এখানে থাকবে। https://gist.github.com/houmanka/289184ca5d8d92de0499#file-server-rake

এখানে কিছু কোড:

# Make a file under: `project_root/lib/tasks/server.rake`

# Then paste the following code

    namespace :server do
      desc "Stop the running server by killing the PID"
      task :kill do
        STDOUT.puts "Enter port number: "
        post_number = STDIN.gets.strip
        system "pid=$(lsof -i:#{post_number.to_i} -t); kill -TERM $pid || kill -KILL $pid"
      end
    end

# Then to use it in the terminal: `rake server:kill`

0

এছাড়াও, নিশ্চিত করুন যে আপনি সার্ভারটি শুরু করতে একই টার্মিনাল (ট্যাব) -তে Cntrl + C কমান্ড করছেন।

আমার ক্ষেত্রে, আমার কাছে 2 টি ট্যাব ছিল তবে আমি সার্ভারটিকে সঠিক ট্যাবটি বন্ধ করতে ভুলে গিয়েছিলাম এবং আমি ভাবছিলাম কেন Cntrl + C কাজ করছে না।


0

একটি দুর্দান্ত সহজ উপায় হবে

gem install shutup

তারপরে আপনার রেল প্রকল্পের বর্তমান ফোল্ডারে যান এবং চালান

shutup # এটি বর্তমানে চলমান রেল প্রক্রিয়াটিকে হত্যা করবে

আপনি যতবার চান 'শটআপ' কমান্ডটি ব্যবহার করতে পারেন

অস্বীকৃতি: আমি এই রত্নটির স্রষ্টা

দ্রষ্টব্য: আপনি যদি rvm ব্যবহার করে বিশ্বব্যাপী মণি ইনস্টল করেন

rvm @global do gem install shutup


0

আমরা লিনাক্সে রেল সেশনটি পোর্ট নং ব্যবহার করে হত্যা করতে পারি

fuser -k 3000/tcp 

এখানে 3000 একটি বন্দর নং এখন আপনার সার্ভারটি পুনরায় চালু করুন, আপনি দেখতে পাবেন যে আপনার সার্ভারটি চলমান অবস্থায় রয়েছে।


0

এই পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনার প্রকল্প খুলুন
  2. টিএমপি ফোল্ডারে নির্বাচন করুন
  3. পিডস ফোল্ডারটি নির্বাচন করুন
  4. সার্ভার.পিড ফাইল মুছুন
  5. এখন আপনার রেল সার্ভার শুরু করুন

আমার রেল 5.2 অ্যাপ্লিকেশনটিতে কাজ হয়নি। Address already in use - bind(2) for "127.0.0.1" port 3000 (Errno::EADDRINUSE)
এ.বারবিয়েরি

0
  1. প্রদত্ত লোকেশনটি ব্যবহার করে কেবল ফাইলটি খুলুন sudo vi /Users/user1/go/src/github.com/rails_app/rails_project/tmp/pids/server.pid

  2. প্রক্রিয়াটি চালাচ্ছে এমন প্রসেস_আইডি / থ্রেড_আইডটি সন্ধান করুন।

  3. নির্দিষ্ট প্রক্রিয়া / থ্রেড ব্যবহার করে হত্যা করুন kill -9 84699


0

6 রেল ব্যবহার করে

ps aux | grep rails সার্ভার প্রক্রিয়া ফিরে আসেনি

আমার করতেই হতো

ps aux | grep puma

আসল প্রক্রিয়াটি অনুসন্ধান করতে এবং তারপরে এটি হত্যা করে kill

kill -9 {process_id}


0

আপনি যদি রেলের আরও আধুনিক সংস্করণ ব্যবহার করেন এবং এটি পুমাকে ওয়েব সার্ভার হিসাবে ব্যবহার করে তবে আটকে থাকা পুমা প্রক্রিয়াটি অনুসন্ধান করতে আপনি নিম্নলিখিত কমান্ডটি চালাতে পারেন:

ps aux | grep puma

এটির ফলাফলটি এর অনুরূপ হবে:

85923 100.0  0.8  2682420 131324 s004  R+    2:54pm   3:27.92 puma 3.12.0 (tcp://0.0.0.0:3010) [my-app]
92463   0.0  0.0  2458404   1976 s008  S+    3:09pm   0:00.00 grep puma

আপনি যে প্রক্রিয়াটির উল্লেখ করছেন না তা চান grep। এই ক্ষেত্রে, প্রক্রিয়া আইডি 85923।

আমি সেই প্রক্রিয়াটি হত্যার জন্য নিম্নলিখিত কমান্ডটি চালাতে পারি:

kill -9 85923

এখানে চিত্র বর্ণনা লিখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.