lsofをインストールします(PKG_PATHはOSのバージョンによって異なります)。

lsofをインストールします(PKG_PATHはOSのバージョンによって異なります)。

以前に誰かが質問しましたが、OpenBSDを使用してこれを行う方法は何ですか?私は成功せずにいくつかの異なるアプローチを試しました。

$ sudo fuser -k 80/tcp
fuser: 80/tcp: No such file or directory
$ kill $(sudo lsof -t -i:80)  
sudo: lsof: command not found
usage: kill [-s signame | -signum | -signame] { job | pid | pgrp } ...
       kill -l [exit_status ...]
$ 

答え1

見て状態統計そしてラソフ港から/バッグ

lsofをインストールします(PKG_PATHはOSのバージョンによって異なります)。

$ su - root -c \
    "PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/5.8/packages/amd64 pkg_add -r lsof"
lsof-4.88: ok

使用fstat:

# Start a process (nc) that listens on port 8080
$ nc -l 8080 & bg
[1] 17454
[1] nc -l 8080

# Get the process listening on port 8080:
$ fstat | grep :8080
cmihai   nc         17454    3* internet stream tcp 0x0 *:8080

次のようにpidを取得する関数を作成できます。

$ portpid() { fstat | grep ":$1" | awk '{print $3}' ;}
$ portpid 8080
17454

その後、次のようにポート8080でリッスンしているプロセスを終了できます。

$ kill $(portpid 8080)
[1] + Terminated           nc -l 8080

婦人声明:

  • この例にはエラー処理や何もありません。ここにリストされている例以外は、どのようなテストも実行しません。誤って他のプロセスが終了しないようにするには、直接テストしてこの関数にエラー処理を追加してください。

引用:

関連情報