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


13

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

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

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

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


あなたのスクリプトは、そのような他の14990.などのペットで実行されているJavaプロセスを殺す
roaima

回答:


32

あなたが試すことができますfuser

fuser -k 4990/tcp

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

kill $(sudo lsof -t -i:4990)

tcpをjavaに置き換える必要がありますか?
Abhishek dot py 2014

@Abhishekdotpy:いいえ、使用しますtcp
cuonglm 14

その-t旗をありがとう、私は長い間それを必要としてきました。
ジャクソン

最後の行をsshに適切に渡す方法のヒントを教えてください。
Vladimir Protsenko、

@VladimirProtsenkoは、より多くのコンテキストを提供できますか?
cuonglm

4

ポート番号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の特定のポートでプロセスを強制終了する方法


を使用kill -9すると、ターゲットプロセスを片付ける機会がありません。kill少なくとも最初は、plainの使用を検討してください。
roaima

1
<?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
を使用kill -9すると、ターゲットプロセスを片付ける機会がありません。kill少なくとも最初は、plainの使用を検討してください。
roaima

このタスクでPHPを使用する場合は+1。
Bananguin

@ G-Manが誤って追加
nivas

@Bananguinは、指定されたポートの正確なプロセスIDを強制終了します。jenkinsでバンチプロセスを実行するときにこれを使用します
nivas

lsof -t -i:port_idビルドプロセスがport_idまたは空process idport_id場合にスクリプトファイルとそのcontains コマンドを実行すると、そのときにいくつかのコマンドエラーが発生し、そのようなエラーを回避します。ここで、指定したポートの正確なプロセスIDを
強制終了でき
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.