Linux 如何从包含PID列表的文件中检查进程是否处于活动状态?

Linux 如何从包含PID列表的文件中检查进程是否处于活动状态?,linux,bash,shell,Linux,Bash,Shell,因此,我有一个.txt文件,其中包含一个PID列表,我想编写一个shell脚本来检查哪些PID是活动的 我的File.txt看起来像- 10414 10491 10632 10636 10623 10639 我想逐行读取文件,检查特定PID是否处于活动状态,如果不是,则仅从文件中删除该PID。此处inputFile是包含PID awk 'NR==FNR{p[$1]=$1;next} $2 in p{print $2}' inputFile <(ps -eaf) >inputFile

因此,我有一个.txt文件,其中包含一个PID列表,我想编写一个shell脚本来检查哪些PID是活动的

我的File.txt看起来像-

10414
10491
10632
10636
10623
10639

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

此处
inputFile
是包含
PID

awk 'NR==FNR{p[$1]=$1;next} $2 in p{print $2}' inputFile <(ps -eaf) >inputFile.tmp && mv inputFile.tmp inputFile
下面将创建一个tmp存储,并仅使用运行的PID创建所需的文件

>inputFile.tmp && mv inputFile.tmp inputFile
试试这个

#!/bin/bash

for pid in $( ps -e | grep -v 'PID' | cut -f 2 -d ' ' );
do
    for _pid in $( cat $1 );
    do
        if [ $_pid = $pid ];
        then
            echo $pid
        fi
    done
done

用法:<代码> > /CaseIfIsActive V.SistListOfPIDytotoChest.txt < /Calp>

进程中的哪些状态将被认为是活动的和非活动的?活动将在后台运行,使用“代码> CAT/CODE”在进程替换中为AWK提供一个常规文件是非常疯狂的。
文件
作为awk的输入。没有认真使用
管道
<代码>awk 1@tripleee谢谢。哦,伙计。是我在想。!!
#!/bin/bash

for pid in $( ps -e | grep -v 'PID' | cut -f 2 -d ' ' );
do
    for _pid in $( cat $1 );
    do
        if [ $_pid = $pid ];
        then
            echo $pid
        fi
    done
done