Ketika saya memulai server rails menggunakan rails s
perintah itu ditampilkanA server is already running. Check C:/Sites/folder/Pids/Server.pids
Ketika saya membuka file itu mengeluarkan angka 4 digit saja jadi bagaimana saya bisa menyelesaikan masalah ini?
FYI
- Tidak ada contoh Rails cmd lain yang berjalan saat ini.
- Memeriksa Task manager tetapi hanya
cmd.exe
menunjukkan tidak ada proses lain yang sedang berjalan. (menggunakan Windows).
ruby-on-rails
ruby-on-rails-3.2
command-prompt
webrick
swapnesh.dll
sumber
sumber
Jawaban:
Hapus file: C: /Sites/folder/Pids/Server.pids
Penjelasan Di lahan UNIX setidaknya kita biasanya melacak proses id (pid) dalam file seperti server.pid. Saya pikir ini melakukan hal yang sama di sini. File itu mungkin tersisa dari kerusakan.
sumber
netstat -a -o
pada prompt perintah untuk melihat proses apa yang menggunakan port 3000TL; DR Jalankan saja perintah ini untuk Membunuhnya
sudo kill -9 $(lsof -i :3000 -t)
Akar Penyebab: Karena PID terkunci dalam sebuah file dan web server berpikir bahwa jika file itu ada maka itu berarti sudah berjalan. Biasanya ketika server web ditutup, file tersebut dihapus, tetapi dalam beberapa kasus, penghapusan yang tepat tidak terjadi sehingga Anda harus menghapus file secara manual. Solusi Baru
ketika Anda menjalankan rel s
=> Booting WEBrick
=> Aplikasi Rails 4.0.4 mulai dikembangkan
http://0.0.0.0:3000
=> Jalankan
rails server -h
untuk lebih banyak opsi startup=> Ctrl-C untuk mematikan server
Server sudah berjalan. Periksa /project_anda/tmp/pids/server.pid. Keluar
Jadi tempatkan jalur Anda yang ditampilkan di sini /project_Anda_tmp/pids/server.pid
dan hapus file server.pid ini :
ATAU Jika server Anda terlepas, ikuti pedoman di bawah ini:
Jika Anda melepaskan server rails Anda dengan menggunakan perintah "rails -d",
Hapus rel server terpisah dengan menggunakan perintah
ps -aef | grep rails
ATAU dengan perintah ini
sudo lsof -wni tcp:3000
kemudian
kill -9 pID
ATAU gunakan perintah ini
Untuk menemukan dan mematikan proses dengan nama port tempat program itu berjalan. Untuk 3000 ganti port tempat program Anda berjalan.
sudo kill -9 $(lsof -i :3000 -t)
Solusi Lama:
rails s -p 4000 -P tmp/pids/server2.pid
Anda juga dapat menemukan posting ini untuk opsi lainnya Pembaruan Rails ke 3.2.11 istirahat menjalankan beberapa server
sumber
sudo kill -9 $(lsof -i :3000 -t)
lsof -wni tcp:3000
Maka Anda akan melihat proses ruby dan Anda dapat menjalankannya
kill -9 processid
Anda seharusnya sudah bisa menjalankan prosesnya sekarang
menjalankan banyak proses sepertinya bukan ide yang bagus dan dari apa yang saya baca banyak orang setuju. Sayangnya saya telah memperhatikan banyak kebocoran memori dengan rel, jadi saya tidak bisa membayangkan memiliki dua proses yang berjalan. Saya tahu dengan satu kali lembur, penyegaran halaman saya semakin lambat karena data disimpan di memori.
sumber
kill -9 $(lsof -i tcp:3000 -t)
sumber
-t
opsi) dan kemudian membunuh proses dengan PID yang diambil itu.Anda dapat menyingkirkan proses tersebut dengan membunuhnya:
kill -9 $(lsof -i tcp:3000 -t)
sumber
$ lsof -wni tcp:3000 # Kill the running process $ kill -9 5946 $ rm tmp/server.pids
mandor mulai dll memulai layanan
sumber
gem install shutup
lalu masuk ke folder proyek rel Anda saat ini dan jalankan
shutup
# ini akan menghentikan proses Rails yang sedang berjalanAnda bisa menggunakan perintah 'shutup' setiap kali Anda mau
DICLAIMER: Saya pencipta permata ini
CATATAN: jika Anda menggunakan rvm, instal permata secara global
rvm @global do gem install shutup
sumber
Itu terjadi ketika Anda mematikan proses server Anda dan file pid tidak diperbarui. Solusi terbaik adalah dengan menghapus file Server.pid .
Gunakan perintah
sumber
Mungkin Anda ditangguhkan server dengan:
^Z
.Empat angka digital yang
vim C:/Sites/folder/Pids/Server.pids
dikeluarkan adalah id proses.Anda harus
kill -9 processid
, mengganti id proses dengan 4 angka yang dihasilkan vim (atau editor lain).sumber
Jika Anda menggunakan Windows, Anda hanya perlu melakukan satu langkah saja sebagai 'rails restart' dan kemudian ketik 'rails s' Anda siap melakukannya.
sumber
Di Windows Rails 5.2, hapus file ini
c:/Sites/<your_folder>/tmp/pids/server.pid
dan lari
lagi.
sumber
Lari:
fuser -k -n tcp 3000
Ini akan menghentikan proses yang berjalan pada port default 3000.
sumber
Saya baru saja mengalami masalah ini dan mencoba mengaturnya ke port yang berbeda, tetapi satu-satunya hal yang perlu saya lakukan adalah menghapus saya
[app_directory]/tmp/pids/server.pid
dan semuanya baik-baik saja.sumber
Lari:
di Ubuntu / linux
sudo rm /var/www/html/rails/WBPOCTEST/tmp/pids/server.pid
Atau
pkill -9 ruby
atau
lsof -wni tcp:3000 kill -9 pid
sumber