特定のポートで実行されているサービスを強制終了するスクリプトを記述しようとしています。これは私のスクリプトです:
a=$(ps ax | grep 4990 | grep Java | awk '{print $1}')
kill -9 $a
これはJavaプログラムです。このスクリプトは時々動作しますが、ほとんどの場合、不思議なことに失敗します。
ポートで実行されているサービスを強制終了する他の方法はありますか?私のポートは4990
。
fuser
を試すことができます:
fuser -k 4990/tcp
または、lsof
を使用してプロセスIDを取得し、kill
にフィードします。
kill $(Sudo lsof -t -i:4990)
ポート番号8080で実行されているサービスまたはプロセスを強制終了する場合は、最初に8080ポートのプロセス識別番号(PID)を見つけて、それを強制終了する必要があります。次のコマンドを実行して、8080ポート番号PIDを見つけます。
Sudo lsof -t -i:8080
ここに、
したがって、次のコマンドを使用してPIDを簡単に強制終了できます。
Sudo kill -9 <PID>
ここに、
次のコマンドを使用して、1つのコマンドで特定のポートのプロセスを強制終了できます。
Sudo kill -9 $(Sudo lsof -t -i:8000)
詳細については、次のリンクを参照してください Linuxの特定のポートでプロセスを強制終了する方法
<?php
$port = $argv[1];
if(!empty($port) && is_numeric($port) ){
$pid = trim(Shell_exec("lsof -t -i:".$port));
if(!empty($pid)){
Shell_exec("Sudo kill -9 ".$pid);
echo "pid : ".$pid." killed which is listened port : ".$port."\xA";
}
else{
echo " [X] no such process found for pid : ".$port."\xA";
}
}
else{
echo " invalid pid \xA";
}
?>
kill.php
$ php kill.php 8088