Ubuntuのポートでプロセスを強制終了する方法


488

私はubuntuの特定のポートのコマンドラインでプロセスを強制終了しようとしています。

このコマンドを実行すると、ポートが取得されます。

sudo lsof -t -i:9001

だから...今実行したい:

sudo kill 'sudo lsof -t -i:9001'

私はこのエラーメッセージを受け取ります:

ERROR: garbage process ID "lsof -t -i:9001".
Usage:
  kill pid ...              Send SIGTERM to every process listed.
  kill signal pid ...       Send a signal to every process listed.
  kill -s signal pid ...    Send a signal to every process listed.
  kill -l                   List all signal names.
  kill -L                   List all signal names in a nice table.
  kill -l signal            Convert between signal numbers and names.

私も試しsudo kill 'lsof -t -i:9001'ました


9
:FYI、Ubuntuの質問がStackExchange(StackOverflowの)ネットワークのUbuntuの一部に答えされているのより良いチャンスが持っているaskubuntu.com
JScoobyCed

回答:


900

通常のティックではなくバックティックを使用したい場合:

sudo kill -9 `sudo lsof -t -i:9001`

それが機能しない場合は$()、コマンドの補間にも使用できます。

sudo kill -9 $(sudo lsof -t -i:9001)

43
信号オプションを追加するのを忘れました。読む必要があります:sudo kill -9 $(sudo lsof -t -i:9001)
Francesco Gramano

7
@FrancescoGramano:必要がない限り、-9を使用したくない。
zellio 2015年

2
sudo killプロセスを強制終了できない場合、@ putra.korengのメソッドは適切に機能します
Fangxin

3
:その後、動作していない上記の場合は、この試みるstackoverflow.com/a/50515868/9339242
Arayanシン

1
このOSに依存しないのですか、それともLinux固有ですか?Linux固有の場合、このコマンドでも機能しますos.system("fuser -k 8080/tcp");
Ridhuvarshan '25 / 07/25


78

UBUNTUの場合1-プロを使用しているアプリケーション/プロセスを検索するには、次のように入力します。

sudo netstat -lpn |grep :8080

Enterキーを押します。

このような出力が得られます

tcp6       0      0 :::8080                 :::*                    LISTEN      6782/java

2-プロセスIDは6782ですが、これはポート8080を使用しているプロセスです。

3-プロセスを終了します。kill6782と入力します。

kill 6782

3
短くて鮮明な返信
Vikas Kukreti

1
完全に動作しました
タイラーベル

上記のコマンドの使用方法を書いていただけませんか?
Mohit

1
私のUbuntu 18.04サーバーでは、より多くの賛成票を持つ回答者のコマンドが見つかりませんでしたが、うまくいきました。ありがとう!
サリバン

38

ubuntuターミナルでポートを強制終了する最良の方法は、 fuser -k 9001/tcp


3
私のために完璧に働いた
Zaveriに会う

それも私のために働いた。これは受け入れられる答えになるはずです。
CodeSlave

35

通常のnetstatコマンドでは表示されないプロセスがあるため、を使用して確認する必要がありますsudo

してくださいsudo netstat -lpn |grep :8080。システムによって実行されているプロセスはPIDを表示しません。このプロセスのPIDを取得するには、次を使用して実行する必要がありますsudo

そして、portを使用してプロセスをkillします8080sudoここでも使用する必要があります。だからこのプロセスを殺すためにsudo kill -9 PID


19

killportコマンドを使用します

sh killport 9001 

シェルをダウンロードするには、以下を使用できますwget

wget https://cdn.rawgit.com/abdennour/miscs.sh/e0aac343/killport

1
それが機能しない場合は、ターゲットポートがすでに閉じていることを意味します
Abdennour TOUMI '19

17

ubuntuのポートサービスを強制終了するには、ターミナルで次のコマンドを入力します

ターミナル:

sudo fuser -k port/tcp
sudo fuser -k 8001/tcp

このシンプルなものは素晴らしいです。
Tri

15

そのためにフューザーを使用することもできます(デフォルトでSIGKILLを送信します)。 sudo fuser -k 9001/tcp


15

入るだけ

    fuser -k -n tcp 3000

端末で、ここで3000はポート番号です


1
定着を使用して:プロセスは、指定されたファイル、ソケット、またはファイルシステム-kを使用ショーます。netstatのTCP:-n殺すためにスタンドあなたのポート3000を使用するプロトコルであること:ここでカスタムポートがリンクです:askubuntu.com/questions / 207609 / i-cant-kill-a-port-process
Kaushik shrimali

12

ポート番号で実行されているプロセスを強制終了するには9001

sudo kill -9 $(sudo lsof -t -i:9001)


lsof   - list of files(Also used for to list related processes)

-t     - show only process ID

-i     - show only internet connections related process

:9001  - show only processes in this port number

kill   - command to kill the process

-9     - forcefully

sudo   - command to ask admin privilege(user id and password).

詳細については、私のブログにアクセスできます


11

最初にポートに基づいてプロセスを強制終了するには、特定のポートに関連するpidを見つけ、そのpidを使用して強制終了する必要があります。

私の場合、3000ポートのpid(プロセスID)を取得したいと思いました:

netstat -ltnp | grep -w '3000'

次に、tcpをリッスンしているpidを見つけます

tcp6       0      0 :::3000                 :::*                    LISTEN      29972/node  

あなたはpid 29972を取得します

このpidを強制終了するには、以下のコマンドを使用します

kill -9 29972

ポートに基づくkillプロセスの疑似コード

 netstat -ltnp | grep -w 'PORT'

そして

kill -9 PID


5

PORTを強制終了します。

sudo プロセスIDを表示することが重要です。

$ sudo netstat -antlp | grep 45136
tcp      0      0 0.0.0.0:45136         0.0.0.0:*        LISTEN           **-** 

$ kill -9 45136

5

コマンドを使用する

 netstat -plten |grep java

tomcatがプロセスとしてjavaを使用するため、grep javaを使用。

プロセスのリストにポート番号とプロセスIDが表示されます

tcp6       0      0 :::8080                 :::*                    LISTEN      
1000       30070621    16085/java

/ javaの前の数字はプロセスIDです。killコマンドを使用してプロセスを終了します

kill -9 16085

-9は、プロセスが強制的に強制終了されることを意味します。



3

これを使用して、ポート番号「9001」で実行されているプロセスを強制終了します

 kill $(lsof -t -i:9001)

受け入れられた回答を含む他の例と重複しています。
ケンスター2017年



1

その2つのステップのプロセス:

  1. ポート番号のプロセスIDを知っています。8080(どれでもかまいません)
  2. そのid 8689のkillプロセス(異なる場合があります)

    fuser -n tcp 8080
    
    #o/p 8080/tcp    8689
    
    kill -9 8689
    

1

ノードを使用してこれを作業できます

npm install freethenport -g

その後

node freethenport 9001

1

アクティブなTCP接続、コンピューターがリッスンしているポートを表示します。

netstat -tupln

pidに沿ってすべての接続がリストされます。pidを見つけてコピーし、次のコマンドを実行します。次のコマンドで、実際のIDに置き換えてください。

kill -9 <copied pid>

-9強制的に接続を強制終了するために使用します。


1

たとえば、sudo fuser PORT/tcp -k 強制終了PORTするポートに置き換えてみてください。80


0

kill -9 $(lsof -t -i:9001)

プロセスを強制終了するために使用できます。9001の代わりに任意のポート番号を使用できます


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