"Port 4200 sudah digunakan" saat menjalankan perintah ng serve

179

Saya belajar sudut 2 dan untuk pertama kalinya saya menggunakan proyek sudut CLI untuk membuat proyek kotak pasir.

Saya bisa menjalankan perintah "ng serve" dan itu berfungsi dengan baik. Saya ingin menghentikannya agar saya menjalankan "Control Z".

Ketika saya mencoba menjalankan perintah "ng-serve" lagi itu memberi saya "Port 4200 sudah digunakan."

Aku menjalankan "PS" untuk mendapatkan daftar PID dan membunuh PID untuk sudut-cli dan berlari "ng-serve" lagi masih memberikan port yang sama dalam kesalahan penggunaan.

peztherez
sumber
Pengembang Windows seumur hidup Saya telah menghabiskan beberapa bulan terakhir di Mac dan melatih diri saya untuk menggunakan CMD + Z. Saya mulai mengalami masalah ini kembali di Windows karena saya default ke CTRL + Z bukannya CTRL + C
Kildareflare
Jika Anda mengerjakan kode studio visual, tutup dan mulai ulang.
Kurkula

Jawaban:

323

Inilah yang saya gunakan untuk membunuh progres di port 4200

Untuk pengguna linux:

sudo kill $(sudo lsof -t -i:4200)

Anda juga dapat mencoba ini:

sudo kill `sudo lsof -t -i:4200`

Untuk pengguna windows:

Nomor port 4200 sudah digunakan. Buka cmd sebagai administrator. Ketik perintah di bawah ini dalam cmd:

netstat -a -n -o

Dan kemudian, cari port dengan nomor port 4200 dengan klik kanan pada terminal dan klik find, masukkan 4200 di "find what" dan klik "find next": Katakanlah Anda menemukan bahwa nomor port 4200 digunakan oleh pid 18932. Ketik perintah di bawah ini di cmd:

taskkill -f /pid 18932

Untuk UNIX:

alias ngf='kill -9  $(lsof -t -i:4200);ng serve'

Sekarang jalankan ngf (bukan dari melayani ) di terminal dari folder proyek. Ini akan mematikan semua proses menggunakan port 4200 dan menjalankan proyek Angular Anda.

Bart Hoekstra
sumber
3
Sementara saya menyadari bahwa ini adalah solusi yang tepat, apakah ini tampaknya bukan solusi yang mengerikan? Bagaimana jika saya ingin menjalankan ng servedirektori yang berbeda? Tidak masuk akal untuk membunuh server dengan cara ini dan kemudian restart di tempat lain atau saya kehilangan sesuatu?
Nathan Dunn
6
Anda dapat menentukan port yang berbeda dengan: --port <new_port>
estellezg
4
Ini membunuh browser default. Dan tidak membantu.
shijin
7
ini memang membunuh jendela browser saya. Saya menemukan jawabannya pada akhirnya ... Saya telah melakukan ^Zpada contoh sudut yang ada yang menggunakan port default, konyol saya!
quietContest
1
Untuk dengan cepat memeriksa pid mana yang menggunakan port 4200 di windows, gunakan netstat -a -n -o | findstr 4200
penta
186

Buka cmd.exesebagai administrator,

maka Cari PIDdariport 4200

netstat -ano | findstr :4200

Pid untuk port 4200

Di sini saya punya 3 PID:

  • Merah adalah dari "ng-serve" (127.0.0.1:4200) itu LISTENING
  • Yang hijau dari "browser Anda"

hanya bunuh port 4200 (bunuh PID merah):

taskkill /PID 15940 /F

catatan: matikan yang hijau hanya akan membuat browser Anda ditutup dengan paksa.

taskkill pid 15940

sekarang Anda dapat melakukan "ng-serve" untuk memulai aplikasi sudut Anda di port yang sama 4200




Barang Tambahan:

One liner: Setelah mencari cara untuk mengoptimalkan ini, Berikut adalah perintah One-liner dari jawaban ini: (terima kasih khusus kepada: Josep Alsina untuk tips ini)

for /f "tokens=5" %a in ('netstat -ano ^| find "4200" ^| find "LISTENING"') do taskkill /f /pid %a
Anthony Kal
sumber
2
Ingatlah untuk melakukannya cmd, bukan Git Bash.
Leo
2
Sintaks untuk GitBash di Windows netstat -ano | findstr: 4200; taskkill -PID <establishedPID> -F
intotecho
Memperbarui GIt Bash memperbaiki masalah saya
Ismail Farooq
90

Pada Mac OS X Anda memerlukan perintah berikut:

sudo lsof -t -i tcp:4200 | xargs kill -9

Ingat Anda harus membunuh server web Angular dengan Command + C.

Julian Fraser
sumber
Bekerja di Ubuntu juga.
Becario Senior
2
perintah + C adalah kunci untuk mematikan proses apa pun. Saya dan para dev lainnya dengan tergesa-gesa menekan perintah + z, yang hanya menunda proses daripada membunuhnya.
Jasmeet
2
@ jasmeet menekan Command + Z juga membuat saya beberapa kali!
Julian Fraser
26

Bukan ctrl + Z, Anda harus menjalankan untuk menghentikan ctrl + C

Emir Mamashov
sumber
sejauh ini solusi paling sederhana untuk masalah ini, bahkan jika secara teknis itu tidak menanggapi pertanyaan OP
Florian
@ Flo Saya pikir solusi, karena jawaban saya mengoreksi alasannya, bukan efek
Emir Mamashov
16

Gunakan perintah ini untuk membunuh ng:

pkill -9 ng
Lolita
sumber
3
saya menggunakannya di ubuntu 18.04 saya. itu mem-flash layar saya dan membawa saya ke login ubuntu membunuh semua aplikasi
srv_sud
Ini membunuh semua aplikasi lain. Tapi akhirnya bekerja untuk saya. Terima kasih
Sakthikanth
13

ng serve --port <YOUR_GIVEN_PORT_NUMBER>

Anda harus mencoba perintah di atas untuk dijalankan pada port yang Anda berikan.

Shubham Verma
sumber
Bekerja dengan baik di ubuntu 18.
Mark Odey
11

Saat Anda menggunakan Ctrl+Z, Anda akan menangguhkan tugas yang sedang berjalan tetapi tidak membunuhnya. Anda nanti dapat menggunakan perintah fguntuk melanjutkan tugas. Jika Anda ingin berhenti ng serve, Anda harus menggunakannya Ctrl+C, yang juga akan merilis port 4200.

Roman Lo
sumber
7

Saat ini Anda dapat mengatur --port 0untuk mendapatkan port gratis.

ng serve --port 0 // will get a free port for you
Yevhen
sumber
Dalam hal ini jangan lupa untuk menggunakan --openbendera, jika tidak, Anda tidak akan tahu di mana port dimulai.
rplaurindo
1
Terminal memberi tahu saya port apa yang dipilihnya. Ini harus menjadi jawaban yang benar untuk pengguna Windows.
Ron
6

Kita dapat dengan paksa membunuh port dengan mengikuti perintah.

kill -2 $(lsof -t -i:4200)
sharath parupati
sumber
6

Untuk Windows:

Buka Command Prompt dan

Tipe: netstat -a -o -n

Temukan PID dari proses yang ingin Anda bunuh.

Tipe: taskkill /F /PID 16876

Ini 16876 - adalah PID untuk proses yang saya ingin membunuh - dalam hal ini, prosesnya adalah 4200 - periksa file terlampir. Anda dapat memberikan nomor port apa pun.

masukkan deskripsi gambar di sini

Sekarang, ketik: ng serveuntuk memulai aplikasi sudut Anda di port yang sama 4200

Jay Kareliya
sumber
5

Saya membagikan ini karena dua perintah unggas tidak melakukan pekerjaan pada mac saya:

sudo kill $(sudo lsof -t -i:4200)

sudo kill `sudo lsof -t -i:4200`

Yang berikut benar, tetapi jika Anda menggunakan terminal terintegrasi dalam Visual Code, coba gunakan terminal mesin Anda dan tambahkan perintah pembilasan:

lsof -t -i tcp:4200 | xargs kill -9
Ahmed Hadi
sumber
Terima kasih itu bekerja untuk saya, semua jawaban di atas tidak bekerja untuk saya karena saya menggunakan terminal VScode di Ubuntu OS.
SURENDRANATH S
4
netstat -anp | grep ":4200"

Ini akan memberi tahu Anda siapa yang mendapatkan port.

Joshua
sumber
apakah itu - anp? yang tidak menghasilkan apa-apa jadi saya hanya menambahkan spasi karena perintah Anda meminta "nestat: opsi membutuhkan argumen --p"
peztherez
Netstat Anda harus berbeda dari milik saya. Mungkin menambahkan tag OS.
Yosua
4
ng serve --port 4201 --live-reload-port 4200

dan akses menggunakan localhost:4201

Ini harus berfungsi sebagai solusi sementara.

atau

coba cantumkan penggunaan port dengan menggunakan
lsof -i:4200
dan bunuh secara manual
sudo kill -9 <Process PID using port 4200>

shijin
sumber
4

Singkatnya ada lebih dari satu solusi: 1) Dengan menggunakan port lain untuk menentukan nomor port,

ng serve --open --port 4201

2) dengan mematikan prosesnya

ctrl + c // for kill
Close all node terminal which is related for running the app.

3) Ketik

netstat -a -n -o

di command prompt kemudian cari PID port terkait dan bunuh dengan

taskkill /F /PID (pid number)

4) Ketik netstat -ano|findstr :4200

mengambil PID alamat asing yang berisi nomor port dan kemudian membunuhnya

taskkill /PID (pid number)/F

Mohaimin Moin
sumber
4

Untuk menghentikan semua port lokal yang berjalan di windows, gunakan komentar sederhana ini saja alih-alih mencari pid secara terpisah menggunakan netstat,

Ia menemukan semua pid dan menghentikan port lokal yang sedang berjalan,

taskkill /im node.exe /f
saravana va
sumber
membantu untuk sudut 4 di windows :)
Icarus
3

Cukup restart IDE yang Anda gunakan, maka itu akan berhasil.

aldo
sumber
3

Dengan ctrl + z Anda meletakkan program di latar belakang. Di Linux Anda bisa mendapatkan kembali sesi di latar depan dengan perintah berikut:

fg ng serve

Anda tidak perlu mematikan prosesnya.

Roh
sumber
2

Perintah satu baris paling sederhana:

 sudo fuser -k 4200/tcp
Salman Ahmed
sumber
2

Dalam kasus saya tidak ada yang disebutkan di atas yang berfungsi.

UBUNTU 18,04 VERSI

Perintah di bawah ini berfungsi.

sudo kill -9 $(lsof -i tcp:4200 -t)
Asing
sumber
2

Jika Anda menggunakan VSCode, Anda memiliki opsi untuk mematikan terminal dan menambahkan terminal baru. Tutup tab dan buka tab baru. Ini berhasil untuk saya.

Diedit: Gunakan ctrl + c dan tekan y. Tanpa terminal mematikan juga, Anda dapat melanjutkan. Jika Anda ingin membuka instance baru dari studio visual dan menjalankan aplikasi yang berbeda, Anda dapat menggunakan layanan --port 4401.

DIBYA RANJAN TRIPATHY
sumber
2

Terminal VScode di Ubuntu OS menggunakan perintah berikut untuk mematikan proses

lsof -t -i tcp:4200 | xargs kill -9
SURENDRANATH S
sumber
1

Anda juga dapat mencoba ini untuk menjalankan aplikasi Anda dalam kode visual studio -:

ng serve --open --port 4201

Anda dapat memberikan nomor port apa pun.

Membahayakan KaushiK
sumber
1

Dikatakan sudah kita menjalankan layanan dengan port no 4200 silakan gunakan port lain bukan 4200. Perintah di bawah ini adalah untuk menyelesaikan masalah

ng lay --port 4300

dharma rao Palli
sumber
1

Anda dapat menggunakan fuser -k 4200 / tcp jika itu adalah sistem operasi Linux

Machhindra Neupane
sumber
1

Matikan proses dan tutup terminal yang Anda gunakan untuk menjalankan aplikasi pada port itu.

Georgi Georgiev
sumber
1

Alih-alih membunuh seluruh proses atau menggunakan ctrl+z, Anda bisa menggunakan ctrl+cuntuk menghentikan server dan dengan senang hati dapat menggunakan ng serve commandtanpa errorsatau jika Anda ingin berjalan di port yang berbeda cukup gunakan perintah ini ng serve --port portno(ex: ng serve --port 4201).

Alekya
sumber
1

Untuk Ubndu 18.04 sudo lsof -t -i tcp: 3000 | xargs kill -9

Ini terjadi ketika port tidak berhasil dihentikan sehingga perintah ini akan mengakhiri itu 4200 atau 3000 atau 3300

pengguna2642281
sumber
0

Saya juga menghadapi pesan kesalahan yang sama, jadi saya mencoba ng melayani --port 12012 dan berfungsi dengan baik.

Sachin Gaikwad
sumber
6
kita tidak bisa banyak port baru setiap kali.
shijin
10
Siapa yang memilih jawaban seperti ini?
shark1608
0

Jika Anda mengkompilasi kode JS sudut Anda di CMD dan IDE maka masalah ini terjadi. Dalam CMD, kode JS sudut Anda mengkompilasi secara otomatis setiap kali Anda mengubah kode JS sudut Anda di IDE dan kemudian IDE Anda ingin menempati port yang sama yaitu 4200 yang sudah ditempati oleh CMD Jadi, ada solusi sederhana untuk masalah ini, tutup saja cmd saat kompilasi kode Anda di IDE.

vishal
sumber
0

Saya menghadapi masalah yang sama setiap kali saya harus membunuh port.

Saya mencoba ./node_modules/.bin/ng serve --proxy-config proxy.conf.json --host 0.0.0.0Alih-alih npm startdan bekerja

Ismail Farooq
sumber