web-dev-qa-db-ja.com

特定のポートで実行されているサービスを強制終了します

特定のポートで実行されているサービスを強制終了するスクリプトを記述しようとしています。これは私のスクリプトです:

a=$(ps ax | grep 4990 | grep Java | awk '{print $1}')
kill -9 $a

これはJavaプログラムです。このスクリプトは時々動作しますが、ほとんどの場合、不思議なことに失敗します。

ポートで実行されているサービスを強制終了する他の方法はありますか?私のポートは4990

13
Abhishek dot py

fuserを試すことができます:

fuser -k 4990/tcp

または、lsofを使用してプロセスIDを取得し、killにフィードします。

kill $(Sudo lsof -t -i:4990)
32
cuonglm

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

Sudo lsof -t -i:8080

ここに、

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

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

Sudo kill -9 <PID>

ここに、

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

次のコマンドを使用して、1つのコマンドで特定のポートのプロセスを強制終了できます。

Sudo kill -9 $(Sudo lsof -t -i:8000)

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

4
Mahfuz
<?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";
  }
?>
  1. phpファイルを作成するkill.php
  2. 必要なポートを使用してphpファイルを実行します$ php kill.php 8088
1
nivas