AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 847096
Accepted
PumpkinSeed
PumpkinSeed
Asked: 2017-04-29 00:59:26 +0800 CST2017-04-29 00:59:26 +0800 CST 2017-04-29 00:59:26 +0800 CST

从 lsof 列表中获取 PID

  • 772

我有一个 react-native 应用程序,我想为启动测试版本编写一个脚本。如果它还活着,我需要击落 :8081 端口。命令:

lsof -i :8081
kill -9 <PID>

得到这个结果的 lsof :

    COMMAND     PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
chrome     2423 loow  127u  IPv4 13749099      0t0  TCP localhost.localdomain:36650->localhost.localdomain:tproxy (ESTABLISHED)
qemu-syst 15091 loow   64u  IPv4 13795587      0t0  TCP localhost.localdomain:43518->localhost.localdomain:tproxy (ESTABLISHED)
qemu-syst 15091 loow   66u  IPv4 13795588      0t0  TCP localhost.localdomain:43520->localhost.localdomain:tproxy (ESTABLISHED)
qemu-syst 15091 loow   89u  IPv4 13777485      0t0  TCP localhost.localdomain:40500->localhost.localdomain:tproxy (ESTABLISHED)
node      16210 loow   16u  IPv6 13747716      0t0  TCP *:tproxy (LISTEN)
node      16210 loow   18u  IPv6 13751322      0t0  TCP localhost.localdomain:tproxy->localhost.localdomain:36650 (ESTABLISHED)
node      16210 loow   19u  IPv6 13798473      0t0  TCP localhost.localdomain:tproxy->localhost.localdomain:43518 (ESTABLISHED)
node      16210 loow   21u  IPv6 13798475      0t0  TCP localhost.localdomain:tproxy->localhost.localdomain:43520 (ESTABLISHED)
node      16210 loow   27u  IPv6 13777958      0t0  TCP localhost.localdomain:tproxy->localhost.localdomain:40500 (ESTABLISHED)

在这种情况下,我需要的是节点服务的 pid 16210。如何从 lsof 获取它?

我lsof -ti :8081尝试了仅返回pid,但它返回了所有这些。我试图用 grep: 扩展它lsof -ti :8081 | grep node,它什么都不返回。

所以我只需要进程 id 就可以将其放入kill -9 $PID.

pid
  • 3 3 个回答
  • 13341 Views

3 个回答

  • Voted
  1. Best Answer
    HBruijn
    2017-04-29T01:39:55+08:002017-04-29T01:39:55+08:00

    我认为您的整个方法存在缺陷,您可能应该在 systemd 下运行您的服务(或将其包装在记录 PID 的 systemV 样式的启动-停止脚本中),这将大大简化停止正确服务的过程。

    或者,查找特定进程的常规工具是pgrep和相关的pkill,可让您轻松杀死它们:

    pkill -9 -u node  react-native-app-name
    

    话虽如此,回答您的字面问题:通常,要停止的正确服务进程是那些在该 TCP 端口上提供侦听器的服务进程,即限制您的lsof输出-sTCP:LISTEN

    lsof -i :8081 -sTCP:LISTEN |awk 'NR > 1 {print $2}'  |xargs kill -15
    
    • 11
  2. user2563336
    2017-04-29T01:12:17+08:002017-04-29T01:12:17+08:00
    lsof -i :8081 | awk '{system("kill -9 " $2)}'
    

    应该做你想做的。但是,在具有许多短期进程的负载非常高的系统上要小心。可能是您杀死了错误的进程,因为有时 lsof 的输出随着时间的推移被证明不太可靠。

    • 5
  3. Vipul Goyal
    2021-06-23T23:51:06+08:002021-06-23T23:51:06+08:00

    正在浏览这篇文章。这里建议了几种方法来终止使用 lsof 拉取的进程。

    最简单的杀法——

    杀死 $(lsof -ti:PORT)

    这将自动终止循环中获取的所有进程 ID。

    • 3

相关问题

  • Systemd 插件无法创建 PID 文件

  • 如何在 Debian8 上获取 su 屏幕 PID?

  • 进程每秒更改一次 PID

  • 如何识别一个进程是唯一的还是巧合的相同PID?

  • 如何在 MacOS 中从 PID 获取进程文件名?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve