Saya menggunakan mac, melakukan:
rails server
Saya mendapat:
2010-12-17 12:35:15] INFO WEBrick 1.3.1
[2010-12-17 12:35:15] INFO ruby 1.8.7 (2010-08-16) [i686-darwin10.4.0]
[2010-12-17 12:35:15] WARN TCPServer Error: Address already in use - bind(2)
Exiting
Saya tahu saya bisa memulainya di port baru, tetapi saya ingin menghentikan proses ini.
ruby-on-rails
Blankman
sumber
sumber
PID
dengan angka aktual yang ditampilkan di konsol Anda setelah memasukkan baris kode yang pertama (misalnya,12345
).lsof -wni tcp:3000
akan selalu menunjukkan semua proses mendengarkan pada protokol itu: kombinasi port. (di mana 3000 harus diganti dengan port server lokal Anda. misalnya dalam Rails ini adalah 3000 secara default).kill -9 $(lsof -i tcp:3000 -t)
sumber
-t
berartispecifies that lsof should produce terse output with process identifiers only and no header - e.g., so that the output may be piped to kill(1).
daripada saya kira Anda tahu apa yangkill
akan dilakukankill -9
dengan menghafal / terbiasa.Anda perlu mendapatkan id proses dari program menggunakan tcp port 3000. Untuk mendapatkan id proses
Dan kemudian menggunakan id proses itu, cukup bunuh proses menggunakan perintah kill ubuntu.
Atau jalankan saja perintah gabungan yang disebutkan di bawah ini. Pertama-tama akan mengambil pid dan kemudian membunuh proses itu.
sumber
kill -9
dengan menghafal / terbiasa.Bagi siapa pun yang tersandung pada pertanyaan ini yang tidak ada di Mac: dengan asumsi Anda tahu bahwa server Anda berjalan pada port 3000, Anda dapat melakukan ini dalam satu kesempatan dengan menjalankan yang berikut:
Tetapi seperti yang disebutkan Toby, implementasi fuser di Mac OS agak primitif dan perintah ini tidak akan berfungsi pada mac.
sumber
-v
bendera juga menunjukkan sejumlah kecil info tentang proses apa yang terbunuh. Jadifuser -kv 3000/tcp
. Sayangnya fuser MacOS tidak memiliki kemampuan ini.kill $(lsof -ti tcp:3000)
adalah setara yang cukup dekat, meskipun.Beberapa kali ada kemungkinan server rel tidak tertutup dengan benar. Anda dapat menemukan proses yang digunakan oleh rel
Output akan seperti
Di sini process_id 12609 digunakan oleh server rails Anda.
Anda dapat membunuhnya dengan mudah dengan perintah
sumber
kill -9
dengan menghafal / terbiasa.ps aux | grep puma
Semua jawaban di atas benar-benar bagus tetapi saya membutuhkan cara untuk mengetik sesedikit mungkin di terminal jadi saya membuat permata untuk itu. Anda dapat menginstal permata hanya sekali dan menjalankan perintah 'shutup' setiap kali Anda ingin membunuh proses Rails (saat berada di folder saat ini).
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
lsof
pendekatan yang lebih dapat diandalkan.ps aux | grep rails menggunakan perintah ini Anda dapat membunuh server
sumber
Secara default, server rel menggunakan port 3000.
Jadi, Anda memiliki 2 opsi untuk menjalankan server rail.
1. Anda dapat menjalankan server pada port lain dengan menentukan port khusus menggunakan perintah berikut
rails s -p 3001
2. Atau Anda dapat membunuh semua proses ruby yang sedang berjalan dengan menjalankan perintah berikut,
killall -9 ruby
kemudian jalankan
rails server
sumber
Solusi satu baris:
sumber
Ketikkan:
Kemudian cari -w, -n, dan -i
-i: barang-barang internet -n: membuatnya lebih cepat -w: mengaktifkan peringatan
Ada WAY rincian lebih lanjut di halaman manual
sumber
Jika Anda menggunakan mesin windows, ikuti langkah-langkah ini.
Di sana Anda akan file bernama server.pid
Hapus.
Itu dia.
EDIT: Silakan merujuk ini
sumber