./shutdown.sh
from tomcat /bin
ディレクトリを使用してtomcatを閉じようとしました。しかし、サーバーが適切に閉じられていないことがわかりました。そして、私は
私のTomcatがポートで実行されていることを再起動することができませんでした8080
。
実行中のTomcatプロセスを強制終了したい 8080
。まず、強制終了するプロセスを選択するために、特定のポート(8080)で実行されているプロセスのリストを取得します。
./shutdown.sh
from tomcat /bin
ディレクトリを使用してtomcatを閉じようとしました。しかし、サーバーが適切に閉じられていないことがわかりました。そして、私は
私のTomcatがポートで実行されていることを再起動することができませんでした8080
。
実行中のTomcatプロセスを強制終了したい 8080
。まず、強制終了するプロセスを選択するために、特定のポート(8080)で実行されているプロセスのリストを取得します。
回答:
これfuser 8080/tcp
により、そのポートにバインドされているプロセスのPIDが出力されます。
そして、これfuser -k 8080/tcp
はそのプロセスを殺します。
Linuxでのみ動作します。より一般的なのは、lsof -i4
(IPv6の場合は6)の使用です。
fuser
。ファイルのみを受け取り、はサポートしていません-k
。
fuser: command not found
、psmiscをインストールしてください。CentOSの/ RHEL 7、実行のためにsudo yum install psmisc
ポート8080をリッスンしているプロセスを一覧表示するには:
lsof -i:8080
ポート8080をリッスンしているプロセスを終了するには:
kill $(lsof -t -i:8080)
より激しく:
kill -9 $(lsof -t -i:8080)
(-9
に相当するSIGKILL - terminate immediately/hard kill
信号:参照キル信号のリストをし、killコマンドで-9オプションの目的は何ですか?何の信号がに指定されていない場合。kill
、TERM信号は別名、-15
またはsoft kill
時には殺すために十分ではありません送信され、プロセス。)。
sudo
sudo lsof -i:8080
。
コマンドを使用する
sudo netstat -plten |grep java
プロセスgrep java
としてのtomcat
用途java
として使用されます。
プロセスのリストにポート番号とプロセスIDが表示されます
tcp6 0 0 :::8080 :::* LISTEN
1000 30070621 16085/java
前の番号/java
はプロセスIDです。kill
コマンドを使用してプロセスを終了します
kill -9 16085
-9
プロセスが強制終了されることを意味します。
netstat
ます。
この1行を追加して、特定のポートでLISTENのみを強制終了します。
kill -9 $(lsof -t -i:3000 -sTCP:LISTEN)
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
ポート番号8080で実行されているプロセスを強制終了する場合は、まず8080ポートのプロセス識別番号(PID)を見つけてから強制終了する必要があります。次のコマンドを実行して、8080ポート番号PIDを見つけます。
sudo lsof -t -i:8080
ここに、
したがって、次のコマンドを使用してPIDを簡単に強制終了できます。
sudo kill -9 <PID>
ここに、
次のコマンドを使用して、1つのコマンドで特定のポートのプロセスを強制終了できます。
sudo kill -9 $(sudo lsof -t -i:8080)
詳細については、次のリンクを参照してください 。Linuxの特定のポートでプロセスを強制終了する方法
sudo kill -9 $(sudo lsof -t -i:8080)
私のために働いた
特定のポートのすべてのプロセスを強制終了する最良の方法。
kill -9 $(sudo lsof -t -i:8080)
これは、実行中のすべてのプロセスIDをstdoutに出力します<port_number>
。
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)
}
以下に示すように、ポート番号を選択し、grep in netstatコマンドを適用します。
netstat -ap | grep :7070
コンソール出力
tcp 0 0 ::: 7070 ::: * LISTEN 3332 / java
PID(プロセス識別番号)に基づいてサービスを強制終了します
kill -9 3332
lsof -i tcp:8000
このコマンドは、ポート8000で実行中のプロセスに関する情報を一覧表示します
kill -9 [PID]
このコマンドはプロセスを強制終了します
Linux:ポートがわかっている場合は、このコマンドを使用できます。
netstat -plten | grep LISTEN | grep 8080
AIX:
netstat -Aan | grep LISTEN | grep 8080
次に、最初の列(例:f100050000b05bb8)を取得して、次のコマンドを実行します。
rmsock f100050000b05bb8 tcpcb
プロセスを強制終了します。
あなたは知ることができます実行されているすべてのポートのリストにその詳細(PID、アドレスなど)とともに、システム内を:
netstat -tulpn
次のコマンドでポート番号を指定すると、特定のポート番号の詳細を確認できます。
sudo netstat -lutnp | grep -w '{port_number}'
例:sudo netstat -lutnp | grep -w '8080'詳細は次のように提供されます。
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
pidを使用してプロセスを強制終了する場合は、次のようにします。kill -9 {PID}
ポート番号を使用してプロセスを強制終了する場合:fuser -n tcp {port_number}
sudo
アクセスできない場合に使用します。
kill -9 `fuser 8080/tcp|xargs -n 1`
、このコマンドは、TCP接続でポート8080をリッスンするプロセスも強制終了します
私は、利用可能なLinuxツールのセットが制限されているYocto Linuxシステムに取り組んでいます。特定のポート(1883)を使用していたプロセスを強制終了したかった。
まず、リッスンしているポートを確認するために、次のコマンドを使用しました。
root@root:~# netstat -lt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:hostmon 0.0.0.0:* LISTEN
tcp 0 0 localhost.localdomain:domain 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:9080 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:1883 0.0.0.0:* LISTEN
tcp 0 0 :::hostmon :::* LISTEN
tcp 0 0 localhost:domain :::* LISTEN
tcp 0 0 :::ssh :::* LISTEN
tcp 0 0 :::1883 :::* LISTEN
次に、次の方法でポート1883を使用してプロセスの名前を見つけました。
root@root:~# fuser 1883/tcp
290
root@root:~# ps | grep 290
290 mosquitt 25508 S /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
12141 root 8444 S grep 290
上記のように、それはプログラムです /usr/sbin/mosquitto
ポート1883を使用してです。
最後に、プロセスを終了しました。
root@root:~# systemctl stop mosquitto
systemctl
この場合、私はsystemdサービスだったので使用しました。
ポートに何があったかを知りたい場合は、それを殺す前にこれを行ってください。
$ 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が報告したプロセスの数を使用します
Git Bashの他の方法:
stopProcessByPortNumber() {
port=":${1}"
portStrLine="$(netstat -ano | findstr LISTENING | findstr $port)"
processId="$(grep -oP '(\d+)(?!.*\d)' <<< $portStrLine)"
echo $processId
taskkill -PID $processId -F
}