shell - 按端口查找进程

标签 shell centos

我一直在尝试列出特定端口上超过 8 分钟的 PID。

for each in $(find /proc -maxdepth 1 -user root -mmin +8 -exec basename {} \;); do echo $each; done

我当前的代码将转储所有超过 8 分钟的进程,但我在 find 中找不到任何有关端口标志的文档。任何想法将不胜感激。

最佳答案

我从不同的方向解决了这个问题,并提出了以下建议:

for i in $(pgrep -f "server.php"); do
    pidtime=$(stat -c '%Y' /proc/$i)
    now=$(date +%s)
    ((now - pidtime >= 6)) && {
      kill $i;
      sleep 1;
      kill &>/dev/null -9 $i;
    }
done

关于shell - 按端口查找进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42118992/

相关文章:

ruby - 为什么我在 CentOS 上收到 ca-bundle.trust.crt 的 asn1 错误?

linux - Fail2Ban 不会启动

linux - cp 命令根本不复制

amazon-web-services - 如何以其他用户身份在 EC2 上的 Cloudformation 中运行用户数据命令?

linux - Bash:使用来自不同命令的模式的命令的grep结果?

centos - ntpdate显示偏移但不同步

linux - 将每个目录的内容移动到一个新的子目录

shell - 在 shell 脚本中使用 cut

linux - virtualbox 中的 Guest CentOS 无法加载 GNOME 电源管理器

linux - 我该如何解决此消息 : "Cannot retrieve repository metadata (repomd.xml) for repository: CentALT. Please verify its path and try again"?