Ng serve komutunu çalıştırırken “Port 4200 zaten kullanılıyor”


179

Açısal 2 öğreniyorum ve ilk defa açısal CLI projesini bir korumalı alan projesi oluşturmak için kullanıyorum.

Ben "ng hizmet" komutunu çalıştırmak başardı ve harika çalışıyor. Çalışmasını durdurmak istedim ve "Control Z" yi çalıştırdım.

Tekrar "ng-serve" komutunu çalıştırmayı denediğimde "Port 4200 zaten kullanılıyor."

PID bir listesini almak için "PS" koştu ve açısal cli PID öldürdü ve yine "ng-serve" yine aynı port kullanım hatası verir koştu.


Yaşam boyu bir Windows geliştiricisi Son birkaç ayını bir Mac'te geçirdim ve CMD + Z'yi kullanmak için kendimi eğittim. CTRL + C yerine varsayılan olarak CTRL + Z'ye
ayarladığım için

Visual studio kodu üzerinde çalışıyorsanız kapatın ve yeniden başlatın.
Kurkula

Yanıtlar:


323

4200 numaralı bağlantı noktasındaki ilerlemeyi öldürdüğüm şey buydu

Linux kullanıcıları için:

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

Bunu da deneyebilirsiniz:

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

Windows kullanıcıları için:

Bağlantı noktası numarası 4200 zaten kullanılıyor. Cmd'yi yönetici olarak açın. Cmd cinsinden aşağıdaki komutu yazın:

netstat -a -n -o

Ve sonra, terminal numarasını sağ tıklatarak 4200 numaralı bağlantı noktasına sahip bağlantı noktasını bulun ve bul'u tıklatın, "neyi bul" alanına 4200 girin ve "sonraki bul" u tıklayın: Diyelim ki 4200 numaralı bağlantı noktası pid 18932 tarafından kullanıldığını bulduğunuzu varsayalım. cmd:

taskkill -f /pid 18932

UNIX için:

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

Şimdi proje klasöründen terminalde ngf ( ng sun yerine) çalıştırın . Bu, 4200 numaralı bağlantı noktasını kullanarak tüm işlemleri öldürür ve Açısal projenizi çalıştırır.


3
Bunun doğru çözüm olduğunu fark etsem de, bu korkunç bir çözüm gibi görünmüyor mu? ng serveFarklı bir dizinde çalıştırmak istersem ne olur ? Sunucuyu bu şekilde öldürmek ve sonra başka bir yerde yeniden başlatmak mantıklı değil mi ya da bir şey eksik mi?
Nathan Dunn

6
--port <new_port>
Şununla

4
Bu, varsayılan tarayıcıyı öldürür. Ve yararlı değil.
shijin

7
bu tarayıcı penceremi öldürdü. Sonunda anladım ... ^ZVarsayılan bağlantı noktasını kullanan mevcut bir açısal örnek üzerinde yapmıştım, aptal bana!
01:56

1
Hangi pid'in pencerelerde 4200 bağlantı noktasını kullandığını hızlı bir şekilde kontrol etmek için netstat -a -n -o | findstr 4200
penta

186

Açık olan cmd.exeolarakadministrator ,

Sonra bul PIDarasındaport 4200

netstat -ano | findstr :4200

4200 numaralı bağlantı noktası için Pid

Burada 3 PID var:

  • Kırmızı olan "ng-serve" (127.0.0.1:4200) LISTENING
  • Yeşil olan "tarayıcınızdan"

sadece port 4200'ü öldür (kırmızı PID'yi öldür):

taskkill /PID 15940 /F

not: yeşil olanı öldürmek sadece tarayıcınızı zorla kapatır.

taskkill pid 15940

şimdi açısal uygulamanızı aynı port 4200'de başlatmak için "ng-serve" yapabilirsiniz




Ek Konular:

Bir astar: Bunu optimize etmenin bir yolunu aradıktan sonra, İşte bu cevabın Tek satırlık komutu: ( bu ipuçları için Josep Alsina'ya özel teşekkürler )

for /f "tokens=5" %a in ('netstat -ano ^| find "4200" ^| find "LISTENING"') do taskkill /f /pid %a

2
Bunu yapmayı unutma cmd, değil Git Bash.
Leo

2
Windows üzerinde GitBash için Syntsax netstat -ano | findstr: 4200; taskkill -PID <establishedPID> -F
intotecho

GIt Bash güncelleniyor benim sorunum
Ismail Farooq

90

Mac OS X'te aşağıdaki komuta ihtiyacınız vardır:

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

Angular'ın web sunucusunu Command + C ile öldürmeniz gerektiğini unutmayın.


Ubuntu'da da çalıştı.
Becario Senior

2
command + C herhangi bir işlemi öldürmenin anahtarıdır. Kendim ve acele diğer geliştiriciler, sadece öldürmek yerine işlemi askıya alan komut + z'ye basın.
Jasmeet

2
@jasmeet Command + Z tuşlarına basmak da beni birkaç kez yakaladı!
Julian Fraser

26

Ctrl + Z değil, stop ctrl + C için çalıştırmalısınız


teknik olarak OP sorusuna cevap vermese bile, sorunun en basit çözümü
Florian

@Flo Bence çözüm, çünkü cevabım etkileri değil sebebini düzeltir
Emir Mamashov

16

Aşağıdakileri öldürmek için bu komutu kullanın:

pkill -9 ng

3
benim ubuntu 18.04 üzerinde kullandım. benim ekran yanıp ve ubuntu giriş tüm uygulamalar öldürme beni aldı
srv_sud

Bu, diğer tüm uygulamaları öldürür.Ancak sonunda benim için çalışır .. teşekkürler
Sakthikanth

13

ng serve --port <YOUR_GIVEN_PORT_NUMBER>

Verilen bağlantı noktanızda çalıştırmak için yukarıdaki komutu denemelisiniz.



11

Kullandığınızda Ctrl+Z, çalışan bir görevi askıya alacaksınız, ancak onu öldürmeyeceksiniz. Daha sonra fggörevi devam ettirmek için komutu kullanabilirsiniz . Çıkmak ng serveistiyorsanız, Ctrl+Cbunun yerine 4200 bağlantı noktasını da serbest bırakacaksınız.


7

Şu anda --port 0ücretsiz bir port almak için ayarlayabilirsiniz .

ng serve --port 0 // will get a free port for you

Bu durumda --openbayrağı kullanmayı unutmayın , aksi takdirde hangi portun başlatıldığını bilemezsiniz.
rplaurindo

1
Terminal bana hangi limanı seçtiğini söyledi. Bu, Windows kullanıcıları için doğru cevap verilmelidir.
Ron


6

Pencereler için:

Komut İstemi'ni aç ve

yazın: netstat -a -o -n

Öldürmek istediğiniz sürecin PID'sini bulun.

Tür: taskkill /F /PID 16876

Bu bir 16876 - öldürmek istediğim işlemin PID'sidir - bu durumda işlem 4200'dür - ekli dosyayı kontrol edin. Herhangi bir bağlantı noktası numarası verebilirsiniz.

resim açıklamasını buraya girin

Şimdi, yazın: ng serveaçısal uygulamanızı aynı bağlantı noktası 4200'de başlatmak için


5

Fowling iki komut benim mac iş yapmadı olarak bu paylaşıyorum:

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

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

Aşağıdakiler yaptı, ancak Visual Code'da tümleşik terminali kullanıyorsanız, makine terminalinizi kullanmayı deneyin ve fowling komutunu ekleyin:

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

Benim için çalışıyor, yukarıdaki tüm cevap Ubuntu OS VScode terminal kullanıyorum gibi benim için çalışmıyor.
SURENDRANATH S

4
netstat -anp | grep ":4200"

Bu size limanın kimde olduğunu söyleyecektir.


bu - anp? hiçbir şey döndürmedi, bu yüzden sadece bir boşluk ekledim çünkü komutunuz "nestat: option bir argüman --p gerektiriyor
peztherez

Netstatınız benimkinden farklı olmalıdır. Belki bir OS etiketi ekleyin.
Joshua

4
ng serve --port 4201 --live-reload-port 4200

ve kullanarak erişim localhost:4201

Bu geçici bir çözüm olarak çalışmalıdır.

veya

kullanarak port kullanımını listelemeyi deneyin
lsof -i:4200
ve
sudo kill -9 <Process PID using port 4200>


4

Özetle birden fazla çözüm vardır: 1) Bağlantı noktası numarasını tanımlamak için başka bir bağlantı noktası kullanarak,

ng serve --open --port 4201

2) süreci öldürerek

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

3) Türü

netstat -a -n -o

komut isteminde ilgili bağlantı noktası PID'sini bulun ve

taskkill /F /PID (pid number)

4) Türü netstat -ano|findstr :4200

liman numarasını içeren yabancı adres PID'sini aldı ve

taskkill /PID (pid number)/F


4

Windows'da çalışan tüm yerel bağlantı noktasını durdurmak için, netstat kullanarak ayrı ayrı pid aramak yerine, bu basit açıklamayı tek başına kullanın,

Tüm pid'i bulur ve şu anda çalışmakta olan yerel bağlantı noktasını durdurur,

taskkill /im node.exe /f

pencerelerde açısal 4 için yararlı :)
Icarus

3

Kullandığınız IDE'yi yeniden başlatmanız yeterli olacaktır.


3

Ctrl + z ile programı arka plana koyarsınız. Linux'ta oturumu aşağıdaki komutla ön plana alabilirsiniz:

fg ng serve

Süreci öldürmene gerek yok.



2

Benim durumumda yukarıda belirtilenlerin hiçbiri işe yaramadı.

UBUNTU 18.04 SÜRÜM

Aşağıdaki komut çalıştı.

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

2

VSCode kullanıyorsanız, terminali öldürme ve yeni bir terminal ekleme seçeneğiniz vardır. Sekmeyi kapatın ve yeni bir sekme açın. Benim için çalıştı.

Düzenlendi: ctrl + c tuşlarını kullanın ve Y tuşuna basın. Dışında ölüm terminali ile, devam edebilirsiniz. Visual studio'nun yeni bir örneğini açmak ve farklı bir uygulama çalıştırmak istiyorsanız, serve -port 4401'i kullanabilirsiniz.


2

Ubuntu işletim sistemindeki VScode terminali işlemi sonlandırmak için aşağıdaki komutu kullanır

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

1

Uygulamanızı visual studio kodunda çalıştırmak için bunu deneyebilirsiniz -:

ng serve --open --port 4201

herhangi bir port numarası verebilirsiniz.


1

Zaten 4200 numaralı bağlantı noktasıyla hizmetleri çalıştırdığımızı söylüyor lütfen 4200 yerine başka bir bağlantı noktası kullanın. Aşağıdaki komut sorunu çözmek için

ng hizmet - port 4300



1

İşlemi sonlandırın ve uygulamayı bu bağlantı noktasında çalıştırmak için kullandığınız terminali kapatın.


1

Tüm süreci öldürmek veya kullanmak yerine, ctrl+zsadece ctrl+csunucuyu durdurmak için kullanabilirsiniz ng serve commandve herhangi biri olmadan mutlu bir şekilde kullanabilirsiniz errorsveya farklı bir bağlantı noktasında çalıştırmak istiyorsanız bu komutu kullanın ng serve --port portno(ex: ng serve --port 4201).


1

Ubndu 18.04 sudo lsof -t -i tcp için: 3000 | xargs öldür -9

Bağlantı noktası başarısız bir şekilde sonlandırıldığında olur, böylece bu komut herhangi bir 4200 veya 3000 veya 3300


0

Ben de aynı hata msj karşı karşıya, bu yüzden hizmet - port 12012 ng çalıştı ve iyi çalıştı.


6
Her seferinde yeni bir liman kuramıyoruz.
shijin

10
Kim böyle cevapları destekliyor?
shark1608

0

Açısal JS kodunuzu CMD ve IDE içinde derlerseniz, bu sorun oluşur. CMD'de, açısal JS kodunuz IDE'deki açısal JS kodunuzu her değiştirdiğinizde otomatik olarak derlenir ve IDE'niz aynı bağlantı noktasını işgal etmek ister, yani CMD tarafından işgal edilen 4200 zaten Yani, bu sorun için basit bir çözüm var, sadece cmd kodunu IDE'de derlerken.


0

Limanı her öldürmem gerektiğinde aynı sorunla karşı karşıyaydım.

./node_modules/.bin/ng serve --proxy-config proxy.conf.json --host 0.0.0.0Bunun yerine denedim npm startve eserleri

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.