linux - 如何从包含 PID 列表的文件中检查进程是否处于事件状态?

标签 linux bash shell

<分区>

所以我有一个包含 PID 列表的 .txt 文件,我想编写一个 shell 脚本来检查哪些 PID 处于事件状态。

我的 File.txt 看起来像-

10414
10491
10632
10636
10623
10639

我想逐行读取文件并检查该特定 PID 是否处于事件状态,如果不活动则仅从文件中删除该 PID。

最佳答案

这里的inputFile是包含pids的源文件

awk 'NR==FNR{p[$1]=$1;next} $2 in p{print $2}' inputFile <(ps -eaf) >inputFile.tmp && mv inputFile.tmp inputFile

详细信息:

以下将打印当前正在运行的进程的 ps 结果,这些结果也存在于您的文件中。

awk 'NR==FNR{p[$1]=$1;next} $2 in p' inputFile <(ps -eaf)

以下将创建一个 tmp 存储并创建您想要的文件,其中仅包含正在运行的 pids。

>inputFile.tmp && mv inputFile.tmp inputFile

关于linux - 如何从包含 PID 列表的文件中检查进程是否处于事件状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48882005/

相关文章:

linux - 将负载分配给多个 cron 作业

linux - 巴什 : Difference between '-' and '--' options

json - 使用 jq 将 JSON 转换为 Markdown 列表

linux - 如何使用内核模块监控进程创建和统计

bash - 在 Windows 上使用 Bash 或 ZSH 找不到 Flutter 命令

linux - 带有管道的 bash 复合命令

bash - 加速 bash 脚本 while 循环

c stdout 到 stdin 实时

linux - 如何使用ssh heredoc在bash中删除多个文件?

linux - 显示所有 1 行 php 文件的 Shell 脚本