Ini adalah pertama kalinya saya bekerja dengan Node.js dan saya mengalami masalah ini:
Saya sudah memulai server Node melalui plugin IDE. Sayangnya, saya tidak dapat menggunakan terminal IDE. Jadi saya mencoba menjalankan skrip dari baris perintah.
Ini masalahnya - Saya menggunakan modul Express dan aplikasi saya mendengarkan beberapa port (8080). Ketika saya memulai aplikasi dari baris perintah, itu melempar kesalahan ini:
events.js:71
throw arguments[1]; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at errnoException (net.js:770:11)
at HTTPServer.Server._listen2 (net.js:910:14)
at listen (net.js:937:10)
at HTTPServer.Server.listen (net.js:986:5)
at Object.<anonymous> (C:\xampp\htdocs\node\chat\app.js:5:5)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.runMain (module.js:492:10)
Meskipun saya tidak begitu yakin apa kesalahan ini bisa saya asumsikan bahwa itu karena aplikasi mendengarkan pada port yang sudah digunakan. Jadi saya melakukannya:
netstat -an
saya dapat melihat
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING
Itu karena server Node sudah mulai ketika saya mencoba memulainya dari IDE.
Jadi saya ingin tahu, bagaimana saya bisa menghentikan semua contoh server? Juga jika Anda dapat memberi tahu saya cara mendeteksi apa yang berjalan pada port dan membunuhnya.
Jawaban:
Mesin Windows:
Perlu untuk membunuh server Node.js, dan Anda tidak memiliki proses Node lainnya berjalan, Anda dapat memberitahu mesin Anda untuk membunuh semua proses yang dinamai
node.exe
. Itu akan terlihat seperti ini:Dan jika proses masih berlanjut, Anda dapat memaksa proses untuk mengakhiri dengan menambahkan
/f
bendera:Jika Anda membutuhkan lebih banyak kontrol berbutir halus dan hanya perlu membunuh server yang berjalan pada port tertentu, Anda dapat menggunakan
netstat
untuk menemukan ID proses, kemudian mengirim sinyal kill ke sana. Jadi dalam kasus Anda, di mana port berada8080
, Anda bisa menjalankan yang berikut:Kolom kelima dari output adalah ID proses:
Anda kemudian dapat mematikan proses dengan
taskkill /pid 14828
. Jika proses menolak untuk keluar, maka tambahkan saja/f
(paksa) parameter ke perintah.Mesin Linux:
Prosesnya hampir identik. Anda bisa mematikan semua proses Node yang berjalan di mesin (gunakan
-$SIGNAL
jikaSIGKILL
tidak cukup):Atau juga menggunakan
netstat
, Anda dapat menemukan PID dari proses mendengarkan di port:ID proses dalam hal ini adalah angka sebelum nama proses di kolom keenam, yang kemudian bisa Anda sampaikan ke
kill
perintah:Jika proses menolak untuk keluar, maka gunakan saja
-9
flag, yang merupakanSIGTERM
dan tidak dapat diabaikan:sumber
process.exit()
di aplikasi Anda menyebabkan instance NodeJS ditutup.killall node
di bash akan membunuh semua instance NodeJS yang berjalan di komputer Anda.taskkill /IM node.exe
. Itu akan membunuh semua proses yang dinamainode.exe
.Cara tercepat adalah
Bekerja dengan Linux, OS X
sumber
node: no process found
Juga ketika saya grep untuk proses simpul yang berjalan pada port tertentu, ID proses-
bukannya nomor itu sendiri.Anda dapat menggunakan
lsof
get proses yang telah terikat ke port yang diperlukan.Sayangnya flag-flag tersebut tampaknya berbeda tergantung pada sistem, tetapi pada Mac OS X Anda dapat menjalankannya
Misalnya, di komputer saya saya mendapatkan sesuatu seperti:
Angka kedua adalah PID dan port yang mereka dengarkan ada di sebelah kanan sebelum "(DENGARKAN)". Temukan PID jahat dan
kill -9 $PID
untuk mengakhiri dengan prasangka ekstrem.sumber
Terminal Windows & GitBash Saya perlu menggunakan perintah ini di dalam terminal Windows / Webstorm / GitBash
sumber
jika Anda ingin membunuh proses simpul tertentu, Anda bisa pergi ke rute baris perintah dan ketik:
untuk mendapatkan daftar semua id proses simpul. sekarang Anda bisa mendapatkan id proses Anda (pid), lalu lakukan:
dan jika Anda ingin membunuh semua proses simpul maka lakukan:
Switch -9 seperti tugas akhir di windows. itu akan memaksa proses untuk mengakhiri. Anda dapat melakukan:
untuk melihat semua switch perintah kill dan komentar mereka.
sumber
Anda dapat mencoba ini:
sumber
Linux
Untuk mengesankan teman-teman Anda
Tapi ini yang akan kamu ingat
sumber
Anda juga dapat mencoba:
killall nodejs
sumber
Jika Anda menggunakan Windows, ikuti ini:
Buka task manager, cari proses ini:
Kemudian klik kanan dan "Akhiri tugas" itu.
Itu saja, sekarang semua perintah npm dijalankan dari awal.
sumber
Multiplatform, stabil, solusi terbaik:
gunakan fkill untuk mematikan proses yang mengambil port Anda:
Untuk menginstal fkill gunakan perintah: npm i -g fkill
sumber
Anda dapat mencoba
Anda juga bisa mencoba
sumber
berfungsi dengan baik di windows 10
sumber
Saya Menggunakan sistem Operasi windows.
Saya membunuh semua proses simpul dan memulai kembali aplikasi yang berfungsi.
mencoba
sumber
Gunakan perintah berikut untuk membunuh dan memulai kembali server simpul dari file batch
sumber
di windows command Ketik perintah blow:
taskkill / f / im node.exe
sumber
Tekan dalam cmd atau bash: Ctrl + C
sumber