Saya baru mengenal rails dan saya menggunakan mesin ubuntu dan IDE rubymine. Masalahnya adalah saya tidak dapat menghentikan server rails. Saya mencoba untuk menghentikan server dengan membunuh proses rel. Tetapi, ketika saya menjalankan pgrep -l rails
, tidak ada proses seperti itu ditemukan. Jadi, saya hanya dapat membunuh proses ruby, tetapi, server tidak akan berhenti.
Saya mencoba ./script/server stop
(sejak saya memulainya dengan berlari ./script/server start
), tetapi, itu tidak berhasil. Googling sekitar dan menemukan beberapa posting stackoverflow, saya mencoba untuk mengubah port mendengarkan port localhost tetapi tidak berhasil. Bisakah seseorang membantu?
ruby-on-rails
epsilones
sumber
sumber
Jawaban:
Anda dapat menggunakan port lain seperti berikut:
Biasanya di terminal Anda, Anda dapat mencoba
Ctrl + C
mematikan server.Cara lain untuk membunuh server default Ruby on Rails (yaitu
WEBrick
):Di terminal Anda untuk mengetahui PID proses:
Kemudian, gunakan nomor di kolom PID untuk mematikan proses:
Sebagai contoh:
Dan beberapa jawaban lain yang saya temukan adalah:
Untuk menghentikan server rails saat sedang berjalan, tekan:
Anda akan mendapatkan kontrol kembali ke
bash
. Kemudian ketik (tanpa$
):Dan ini akan kembali ke proses, dan kemudian berhenti
Rails s
dengan benar.Agak menyebalkan, tapi ini pasti mengalahkan prosesnya secara manual. Itu tidak terlalu buruk dan itu yang terbaik yang bisa saya pikirkan.
Jawaban yang diperbarui:
Anda dapat menggunakan
killall -9 rails
untuk membunuh semua aplikasi yang berjalan dengan "rails
" di namanya.killall -9 rails
sumber
{APP_ROOT}/tmp/pids/server.pid
file sehingga Anda tidak perlu mencarinya - selama server berjalan. Jadi, jikactrl-c
Anda tidak menjalankan perintah kill di terminal lain, itu akan langsung membunuh server Webrick.Anda dapat menggunakan perintah grep dengan cara berikut,
lalu
sumber
killall -9 rails
ps aux | grep puma
pkill -9 rails
untuk membunuh semua proses relJawaban yang diperbarui
ps aux|grep 'rails'|grep -v 'grep'|awk '{ print $2 }'|xargs kill -9
Ini akan membunuh proses rel yang berjalan. Ganti 'rel' dengan sesuatu yang lain untuk membunuh proses lainnya.
sumber
Berikut ini adalah langkah-langkah untuk mematikan proses server:
1. lsof -i tcp:3000
2. kill -9 1234
di mana
1234
PID proses: localhost: 3000 tampilan dalam langkah 1.ATAU
Hapus file (server.pid) di bawah
Rails.root/tmp/pids/
dan restart server.ATAU
buka aplikasi di port lain dengan menggunakan perintah:
rails s -p 3001
sumber
Pada MAC saya
killall -9 rails
tidak berfungsi. Namunkillall -9 ruby
demikian.sumber
COMMAND
nilainya juga.Saya biasanya menggunakan:
killall ruby
ATAU
pkill -9 ruby
yang akan membunuh semua proses ruby terkait yang sedang berjalan seperti
rails server
,rails console
, dllsumber
1. Cukup Hapus file pid dari direktori app rails
Rails_app -> tmp -> pids -> pid file
Hapus file dan jalankan
rails start
2. Untuk Rails 5.0 ke atas, Anda dapat menggunakan perintah ini
rails restart
sumber
Gunakan
ctrl+c
untuk mematikan Server Webrick Anda.Sayangnya jika tidak berfungsi maka tutup terminal dengan paksa dan nyalakan kembali.
Trik lain adalah itu
sumber
Hapus server.pid dari folder tmp / pids. Dalam kasus saya, kesalahannya adalah: Server sudah berjalan. Periksa /home/sbhatta/myapp/tmp/pids/server.pid.
Jadi, saya menghapus server.pid
rm /home/sbhatta/myapp/tmp/pids/server.pid
lalu larirails s
sumber
Langkah 1: cari barang apa saja yang menggunakan 3000 port.
langkah 2: Temukan proses bernama
Untuk Mac
Untuk Ubuntu
Langkah 3: Temukan PID dari proses dan bunuh.
sumber
Ctrl-Z biasanya melakukan trik.
sumber
Saya menggunakan
killall -9 rails
seperti yang disarankan Sri dan tidak berhasil. Saya menyesuaikan perintahkillall -9 ruby
dan server segera ditutup.Tl; dr:
killall -9 ruby
sumber
sesederhana itu
tidak lebih tidak kurang
sumber
Ketika server rails tidak memulai itu berarti sudah berjalan maka Anda dapat mulai dengan menggunakan port baru mis.
atau itu mulai dan berhenti dalam hal ini Anda ingin menghapus folder temp di struktur direktori rails ia memulai server rails.
sumber
periksa /tmp/tmp/server.pid
ada pid di dalamnya.
Biasanya, saya sakit "kill -9 THE_PID" di cmd
sumber
Saya perhatikan di Windows (saya menggunakan 10 tetapi tidak yakin apakah sama untuk oler). Jika Anda menggunakan cmd.exe dan ctrl + c server raisl berhenti dengan benar.
Namun, jika Anda menggunakan Git Bash, itu tidak. Ia mengatakan memiliki tetapi ketika Anda melihat pips tmp, itu masih ada.
Mungkin bug dengan git bash?
sumber
killall -9 ruby
akan membunuh semua proses ruby, dan setidaknya pada mesin saya, server rails muncul sebagai proses ruby.killall -9 rails
jauh lebih spesifik dan tidak bekerja untuk server rail versi lama (ini memberikan 'rails: no process found' karena prosesnya bernama ruby)Mengalami masalah ini beberapa waktu lalu. Setelah mengirimkan formulir dalam activeadmin, server rel hanya digantung dan saya tidak dapat membunuhnya menggunakan cara normal (bahkan setelah ctrl + z masih berjalan di latar belakang). Jawaban Learner membantu, tetapi perintah ini tidak memerlukan id proses.
sumber
Sudah terlambat untuk pertanyaan ini. Ini 2 sen saya. Saya membuat tugas menyapu untuk menghentikan server ketika saya tidak memiliki akses ke sana. Saya hanya menguji pada Mac.
Dengan ini, Anda cukup menambahkannya ke proyek Anda kemudian jalankan perintah rake.
Ini dia:
Tautan intisari: - Versi terbaru akan ada di sini. https://gist.github.com/houmanka/289184ca5d8d92de0499#file-server-rake
Beberapa kode di sini:
sumber
Juga, Pastikan Anda melakukan perintah Cntrl + C di terminal yang sama (tab) yang digunakan untuk memulai server.
Dalam kasus saya, saya memiliki 2 tab tetapi saya lupa untuk menghentikan server dari tab yang benar dan saya bertanya-tanya mengapa Cntrl + C tidak berfungsi.
sumber
Satu cara super mudah adalah
gem install shutup
kemudian masuk ke folder saat ini dari proyek rel Anda dan jalankan
shutup
# ini akan mematikan proses Rails yang sedang berjalanAnda dapat menggunakan perintah 'shutup' setiap kali Anda inginkan
DICLAIMER: Saya adalah pencipta permata ini
CATATAN: jika Anda menggunakan rvm, instal permata secara global
sumber
Untuk mesin windows 10 saya, Ctrl - C+ Ctrl - Dberfungsi.
sumber
Kita dapat membunuh sesi rails di Linux menggunakan PORT no
di sini 3000 adalah port no. Sekarang restart server Anda, Anda akan melihat server Anda dalam keadaan berjalan.
sumber
Ikuti langkah ini:
sumber
Address already in use - bind(2) for "127.0.0.1" port 3000 (Errno::EADDRINUSE)
Cukup buka file menggunakan lokasi yang diberikan
sudo vi /Users/user1/go/src/github.com/rails_app/rails_project/tmp/pids/server.pid
temukan process_id / thread_id di mana proses dijalankan.
Bunuh proses / utas yang ditentukan menggunakan
kill -9 84699
sumber
Di rel 6 menggunakan
ps aux | grep rails
tidak mengembalikan proses serversaya harus melakukan
ps aux | grep puma
untuk menemukan proses aktual dan kemudian membunuhnya menggunakan
kill -9 {process_id}
sumber
Jika Anda menggunakan versi Rails yang lebih modern dan menggunakan Puma sebagai server web, Anda dapat menjalankan perintah berikut untuk menemukan proses Puma yang macet:
Ini akan menghasilkan output yang mirip dengan ini:
Anda ingin proses yang tidak mengacu
grep
. Dalam hal ini, ID proses adalah 85923.Saya kemudian dapat menjalankan perintah berikut untuk mematikan proses itu:
sumber