ng serveコマンドを実行すると、「ポート4200はすでに使用されています」


179

私は角度2を学習しており、初めて角度CLIプロジェクトを使用してサンドボックスプロジェクトを作成しています。

「ng serve」コマンドを実行できました。実行を停止したかったので、「Control Z」を実行しました。

「ng-serve」コマンドをもう一度実行しようとすると、「ポート4200はすでに使用されています」と表示されます。

「PS」を実行してPIDのリストを取得し、angular-cliのPIDを強制終了し、「ng-serve」を再度実行しても、同じポートの使用中エラーが発生します。


過去数か月間Macで過ごしてきた生涯のWindows開発者で、CMD + Zを使用するように自分自身を訓練しました。CTRL+ CではなくCTRL + Zをデフォルトに設定していたため、この問題に直面し始めました
Kildareflare

ビジュアルスタジオコードで作業している場合は、コードを閉じて再起動します。
クルクラ

回答:


323

これは、ポート4200で進行状況を強制終了するために使用したものです。

Linuxユーザーの場合:

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

これを試すこともできます:

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

Windowsユーザーの場合:

ポート番号4200はすでに使用されています。管理者としてcmdを開きます。cmdに以下のコマンドを入力します。

netstat -a -n -o

次に、ターミナルを右クリックして[検索]をクリックし、ポート番号4200のポートを見つけます。[検索対象]に4200と入力し、[次を検索]をクリックします。ポート番号4200がpid 18932によって使用されていることがわかったとします。 cmd:

taskkill -f /pid 18932

UNIXの場合:

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

ここで、プロジェクトフォルダーからターミナルでng serveの代わりにngfを実行します。これにより、ポート4200を使用するすべてのプロセスが強制終了され、Angularプロジェクトが実行されます。


3
これが正しい解決策であることに気づきましたが、これは恐ろしい解決策ではないようですか?ng serve別のディレクトリで実行したい場合はどうなりますか?この方法でサーバーを強制終了してから別の場所で再起動しても意味がありませんか、それとも何か不足していますか?
ネイサンダン

6
:あなたが別のポートを指定することができます --port <new_port>
estellezg

4
これにより、デフォルトのブラウザが強制終了されます。そして役に立たない。
shijin

7
これは私のブラウザウィンドウを殺しました。私は最終的にそれを理解しましたが...私は^Zデフォルトのポートを使用している既存の角度のインスタンスでを実行しました、ばかげた私!
quietContest 2017

1
Windowsでポート4200を使用しているpidをすばやく確認するには、netstat -a -n -o | findstr 4200-
ペンタ

186

cmd.exeとしてあなたを開きadministrator

次にPIDport 4200

netstat -ano | findstr :4200

ポート4200のPID

ここに私は3つのPIDを持っています:

  • 赤は "ng-serve"(127.0.0.1:4200)からのもので、 LISTENING
  • 緑のものは「あなたのブラウザ」からのものです

ポート4200のみを強制終了(赤のPIDを強制終了):

taskkill /PID 15940 /F

注:緑の1つを強制終了すると、ブラウザが強制的に閉じられます。

タスクキルpid 15940

「ng-serve」を実行して、同じポート4200で角度アプリを起動できるようになりました




追加のもの:

One liner:これを最適化する方法を検討した後、これがこの回答のone-linerコマンドです:(このヒントを提供してくれたJosep Alsinaに感謝)

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

2
cmdではなく、で実行することを忘れないでくださいGit Bash
レオ

2
Windows netstat -ano上のGitBash用Syntsax | findstr:4200; taskkill -PID <establishedPID> -F
intotecho 2018年

GIt Bashを更新すると問題が解決します
Ismail Farooq

90

Mac OS Xでは、次のコマンドが必要です。

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

AngularのWebサーバーをCommand + Cで強制終了する必要があることを覚えておいてください。


Ubuntuでも働いていました。
Becarioシニア

2
command + Cは、プロセスを強制終了するためのキーです。自分や他の開発者は速攻プレスcommand + zを押して、プロセスを強制終了するのではなく、一時停止します。
Jasmeet

2
@jasmeetを押しながらCommand + Zを押すと、何度も何度も私を手に入れました!
ジュリアンフレイザー

26

Ctrl + Zではなく、Ctrl + Cで停止する必要があります


技術的にそれがOPの質問に応答しない場合でも、問題に対するはるかに単純な解決策
フロリアン

@Flo解決策だと思います。私の答えは効果ではなく理由を修正するためです
Emir Mamashov

16

このコマンドを使用して、ngを強制終了します。

pkill -9 ng

3
私はubuntu 18.04でそれを使用しました。画面が点滅し、ubuntuログインに移動してすべてのアプリが終了しました
srv_sud

これは他のすべてのアプリを殺します。しかし、ついに私のために動作します..thanks
Sakthikanth


11

を使用Ctrl+Zすると、実行中のタスクを一時停止しますが、強制終了することはありません。後でコマンドfgを使用してタスクを再開できます。終了ng serveする場合は、Ctrl+C代わりにを使用する必要があります。これにより、4200ポートも解放されます。


7

現在--port 0、フリーポートを取得するように設定できます。

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

この場合、--openフラグを使用することを忘れないでください。そうしないと、どのポートで開始されたかがわかりません。
rplaurindo

1
ターミナルは、どのポートを選択したかを教えてくれました。これは、Windowsユーザーにとって正しい答えです。
ロン


6

Windowsの場合:

コマンドプロンプトを開き、

タイプ: netstat -a -o -n

強制終了するプロセスのPIDを見つけます。

タイプ: taskkill /F /PID 16876

これは16876です-私が殺したいプロセスのPIDです-その場合、プロセスは4200です-添付ファイルを確認してください。任意のポート番号を指定できます。

ここに画像の説明を入力してください

次に、次のように入力ng serveします。同じポート4200で角度アプリを起動します


5

私のMacでは2つのコマンドを実行するのがうまくいかなかったので、これを共有しています。

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

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

次のコードは機能しましたが、Visual Codeで統合ターミナルを使用している場合は、マシンのターミナルを使用して、fowlingコマンドを追加してみてください。

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

おかげで私にとってはうまくいきました。UbuntuOSでVScode端末を使用しているので、上記のすべての答えは私にとってはうまくいきません。
SURENDRANATH S

4
netstat -anp | grep ":4200"

これにより、誰が移植したかがわかります。


それは-anpですか?それは何も返さなかったので、コマンドが「nestat:オプションには引数--pが必要です
peztherez

あなたのnetstatは私のものと異なっている必要があります。OSタグを追加するかもしれません。
ジョシュア

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

およびアクセスを使用して localhost:4201

これは一時的な解決策として機能するはずです。

または

を使用してポートの使用状況をリストしてみ
lsof -i:4200
て、手動でそれを殺してください
sudo kill -9 <Process PID using port 4200>


4

要約すると、複数の解決策があります:1)別のポートを使用してポート番号を定義することにより、

ng serve --open --port 4201

2)プロセスを強制終了する

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

3)タイプ

netstat -a -n -o

次に、コマンドプロンプトで、関連するポートのPIDを見つけて強制終了します

taskkill /F /PID (pid number)

4)タイプ netstat -ano|findstr :4200

ポート番号を含む外部アドレスPIDを取得し、それを殺す

taskkill /PID (pid number)/F


4

Windowsで実行されているすべてのローカルポートを停止するには、netstatを使用して個別にpidを検索する代わりに、この単純なコメントのみを使用します。

すべてのpidを見つけ、現在実行中のローカルポートを停止します。

taskkill /im node.exe /f

Windowsの角度4に役立ちます:)
Icarus


3

ctrl + zを使用すると、プログラムがバックグラウンドで実行されます。Linuxでは、次のコマンドでセッションをフォアグラウンドに戻すことができます。

fg ng serve

プロセスを終了する必要はありません。



2

私の場合、上記のどれもうまくいきませんでした。

UBUNTU 18.04バージョン

以下のコマンドが機能しました。

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

2

VSCodeを使用している場合は、ターミナルを終了して新しいターミナルを追加するオプションがあります。タブを閉じて、新しいタブを開きます。それは私のために働いた。

編集:ctrl + cを使用してyを押します。ターミナルを殺すことなく、続行できます。Visual Studioの新しいインスタンスを開いて別のアプリケーションを実行する場合は、ng serve --port 4401を使用できます。


2

Ubuntu OSのVScodeターミナルは、次のコマンドを使用してプロセスを強制終了します

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

1

これを使って、アプリケーションをビジュアルスタジオコードで実行することもできます-:

ng serve --open --port 4201

任意のポート番号を指定できます。


1

それはすでにポート番号4200でサービスを実行していると言っています4200の代わりに別のポートを使用してください。以下のコマンドは問題を解決するためのものです

ng serve --port 4300




1

プロセス全体を強制終了したり使用したりする代わりにctrl+z、を使用ctrl+cしてサーバーを停止し、ng serve command何もせずに使用しerrorsたり、別のポートで実行したい場合はこのコマンドを使用したりできますng serve --port portno(ex: ng serve --port 4201)


1

Ubndu 18.04の場合sudo lsof -t -i tcp:3000 | xargs kill -9

これは、ポートが正常に終了しなかった場合に発生するため、このコマンドは4200または3000または3300のいずれかで終了します。


0

私も同じエラーメッセージに直面したので、ng serve --port 12012を試してみましたが、うまくいきました。


6
毎回新しいポートを割り当てることはできません。
詩人

10
このような答えを支持しているのは誰ですか?
shark1608 2017年

0

CMDとIDEの両方で角度のあるJSコードをコンパイルすると、この問題が発生します。CMDでは、IDEで角度JSコードを変更し、IDEが同じポート、つまりCMDによってすでに占有されている4200を占有する場合、角度JSコードが自動的にコンパイルされます。したがって、この問題の簡単な解決策があります。 IDEでコードをコンパイルする際のcmd。


0

私はポートを殺さなければならないたびに同じ問題に直面していました。

私が試した./node_modules/.bin/ng serve --proxy-config proxy.conf.json --host 0.0.0.0の代わりにnpm start、その作品

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.