1

何度も直面している仕事の 1 つを自動化しようとしています。一部の以前のジョブで正しく閉じられていないポートがいくつかあります..

ポート5000,5001としましょう

私がやりたいことは、これらのポートが開いているかどうかを確認することです

これらのポートが開いている場合は強制終了します

だから今、私はやっています

lsof -i :5000

 kill -9 pid1
    kill -9 pid2

等々..

5000 と 5001 を引数として渡し、このプロセスを自動化する方法はありますか

4

3 に答える 3

2

使用中に自動化したい場合は、次のようにします。

たとえば「killMyPorts」という名前の bash スクリプトを作成し、次の内容を追加します。

#!/bin/bash
kill -9 `lsof -i :"${1}" | awk '{if (NR!=1) {print $2}}'`

スクリプトを実行可能 (chmod u+x) にすると、次のように実行できます。

./killMyPorts 5000
于 2013-02-19T19:55:00.610 に答える
1

fuserあなたのためにこの仕事をすることができます。

kill_port_users() {
  for port; do
    fuser -n tcp -k "$port"
  done
}

kill_port_users 5000 5001
于 2013-02-19T19:49:46.157 に答える
0

やってみました

kill -9 `lsof -i :5000`

また

kill -9 $(lsof -i :5000)
于 2013-02-19T19:57:01.717 に答える