安装 lsof(PKG_PATH 取决于您的操作系统版本):

安装 lsof(PKG_PATH 取决于您的操作系统版本):

之前有人问过,但是如何使用 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 取决于您的操作系统版本):

$ 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

免责声明:

  • 此示例中没有错误处理或任何内容 - 除了此处列出的示例之外,我没有进行任何类型的测试。请自行测试并向该函数添加一些错误处理,以避免错误地终止另一个进程。

参考:

相关内容