使用 ps 命令计算进程数的不同结果

使用 ps 命令计算进程数的不同结果

脚本A:

#!/bin/bash
cmdname=$1
process_num=$(ps -e | grep $cmdname | wc -l)
timestamp=$(date +%s)
echo -e  "$timestamp\t process_num=$process_num"

脚本B:

#!/bin/bash
cmdname=$1
process_num=$(ps -ef | grep $cmdname | wc -l)
timestamp=$(date +%s)
echo -e  "$timestamp\t process_num=$process_num"

假设系统上只有一个指定的进程,运行脚本A的结果是1,但是运行脚本B的结果是4,不知道为什么?

答案1

这是因为它也计算脚本进程,假设你检查一个未运行的进程,例如说,你好当您通过第一个过程检查它时,它会给出 2 但是当您运行第二个脚本时,它会显示计数为 4。

您可以通过先运行第二个脚本,然后运行第一个脚本来检查这一点,然后第一个脚本也给出计数为 4

相关内容