linux - 起動 - ゾンビプロセス 確認




どのようにLinuxの特定のポート上で実行されているプロセスを殺すには? (11)

  1. lsof -i tcp:8000このコマンドは、ポート8000​​で実行中のプロセスに関する情報を表示します

  2. kill -9 [PID]このコマンドは、プロセスを強制終了します。

私はtomcat /binディレクトリから./shutdown.shを使ってtomcatを./shutdown.shうとしました。 しかし、サーバーが正しく閉じられていないことが判明しました。 そして、私は再起動できませんでした
私のtomcatはポート8080動作しています。

私は8080実行されているtomcatプロセスを強制終了したい。 最初に、特定のポート(8080)で実行中のプロセスのリストを持って、どのプロセスを強制終了するかを選択したいとします。


@ 言ったことをて:

何が港にあるのか知りたければ、それを殺す前にこれをしてください。

$ sudo netstat -plten |grep java
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1000       906726      25296/java      
tcp6       0      0 :::8009                 :::*                    LISTEN      1000       907503      25296/java      
tcp6       0      0 :::8080                 :::*                    LISTEN      1000       907499      25296/java      
$ ps 25296
  PID TTY      STAT   TIME COMMAND
25296 ?        Sl     0:16 /usr/lib/jvm/java-8-openjdk-amd64/bin/java -Dcatalina.base=/hom

'ps'とnetstatが報告したプロセスの番号を使用してください


lsofコマンドを使用できます。 ここのようなポート番号を8090とする

lsof -i:8090

このコマンドは、このポート上に開いているプロセスのリストを返します。

何かのようなもの…

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ssh 75782 eoin 5u IPv6 0x01c1c234 0t0 TCP localhost:8090 (LISTEN)

ポートを解放するには、ポートを使用してプロセスを終了します(プロセスIDは75782です)。

kill -9 75782

これは私のために働いた。 ここに元の投稿からのリンクがあります: link


<port_number>実行されているすべてのプロセスIDをstdoutに出力します。

fuser -n tcp <port_number> 

また、stderrにいくつかのものを表示します:

fuser -n tcp <port_number> 2> /dev/null

次に、これらのプロセスIDをkillコマンドに指定することができます。

sudo kill $(fuser -n tcp <port_number> 2> /dev/null)

あなたはそれをたくさんするならば、これを関数に入れることもできます:

function killport() {
    sudo kill $(fuser -n tcp $1 2> /dev/null)
}

Linux :まずポートを知っているなら、このコマンドのPIDを見つけることができます:

netstat -tulpn 

例: -

 Local Address  Foreign Address  State    PID/Program name

  :::3000       :::*             LISTEN    15986/node 

その後、殺害プロセスを取る。 次のコマンドを実行します。

kill -9 PID

例: -

殺す-9 15986


Linux :ポートがわかっている場合は、このコマンドを使用できます。

netstat -plten | grep LISTEN | grep 8080

AIX

netstat -Aan | grep LISTEN | grep 8080

最初の列(例:f100050000b05bb8)を使用して、次のコマンドを実行します。

rmsock f100050000b05bb8 tcpcb

プロセスを殺す。


このfuser 8080/tcpは、そのポートにバインドされているプロセスのPIDを出力します。

そして、このfuser -k 8080/tcpはそのプロセスを強制終了します。

Linuxのみで動作します。 より普遍的なlsof -i4 (またはIPv6の6)の使用です。


このようにしてみて、

 sudo fuser -n tcp -k 8080

ポート8080をリッスンするプロセスを一覧表示するには:

lsof -i:8080

ポート8080をリッスンしているプロセスを強制終了するには:

kill $(lsof -t -i:8080)

より激しく:

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

killコマンドの-9オプションの目的は何ですかkillを行うシグナルが指定されていない場合、TERMシグナルは別名-15となります( -9SIGKILL - terminate immediately/hard kill対応します) 。またはsoft killが送信されますが、プロセスを終了するには不十分な場合もあります)。


ポート番号8080で実行されているプロセスを終了させたい場合は、最初に8080ポートのプロセス識別番号(PID)を見つけてからkillする必要があります。 次のコマンドを実行して、8080ポート番号PIDを見つけます。

sudo lsof -t -i:8080

ここに、

  • sudo - 管理者権限(ユーザIDとパスワード)を要求するコマンド。
  • lsof - ファイルのリスト(関連するプロセスをリストするためにも使用されます)
  • -t - プロセスIDのみを表示する
  • -i - インターネット接続関連のプロセスのみを表示する
  • :8080 - このポート番号のプロセスのみを表示する

したがって、次のコマンドを使用して簡単にPIDを強制終了できます。

sudo kill -9 <PID>

ここに、

  • kill - プロセスを終了させるコマンド
  • -9-強制的に

あるコマンドを使用して、次のコマンドを使用して特定のポート上のプロセスを強制終了することができます。

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

詳細については、次のリンクを参照してください。linuxの特定のポートでプロセスを強制終了する方法


sudo apt-get install psmisc (or sudo yum install psmisc)
sudo fuser 80/tcp

結果:80 / tcp:1858 1867 1868 1869 1871

プロセスを1つずつ終了する

殺す-9 1858





kill-process