On 4/1/24 14:21, Qu Wenruo wrote:
在 2024/4/1 16:46, Anand Jain 写道:
Certain helper functions and the testcase btrfs/132 use the following
script to find running processes:
while ps aux | grep "balance start" | grep -qv grep; do
<>
done
Instead, using pgrep is more efficient.
while pgrep -f "btrfs balance start" > /dev/null; do
<>
done
Signed-off-by: Anand Jain <anand.jain@xxxxxxxxxx>
Looks good to me.
Although there are already several test cases utilizing pgrep, I'm not
100% sure if pgrep would exist for all systems.
Shouldn't there be some checks first?
Actually, I checked on that and noticed that pgrep comes from
the same package as ps. So we are fine.
$ rpm -ql procps-ng | grep -E "bin/pgrep|bin/ps"
/usr/bin/pgrep
/usr/bin/ps
Thanks, Anand
Thanks,
Qu
---
common/btrfs | 10 +++++-----
tests/btrfs/132 | 2 +-
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/common/btrfs b/common/btrfs
index 2c086227d8e0..a320b0e41d0d 100644
--- a/common/btrfs
+++ b/common/btrfs
@@ -327,7 +327,7 @@ _btrfs_kill_stress_balance_pid()
kill $balance_pid &> /dev/null
wait $balance_pid &> /dev/null
# Wait for the balance operation to finish.
- while ps aux | grep "balance start" | grep -qv grep; do
+ while pgrep -f "btrfs balance start" > /dev/null; do
sleep 1
done
}
@@ -381,7 +381,7 @@ _btrfs_kill_stress_scrub_pid()
kill $scrub_pid &> /dev/null
wait $scrub_pid &> /dev/null
# Wait for the scrub operation to finish.
- while ps aux | grep "scrub start" | grep -qv grep; do
+ while pgrep -f "btrfs scrub start" > /dev/null; do
sleep 1
done
}
@@ -415,7 +415,7 @@ _btrfs_kill_stress_defrag_pid()
kill $defrag_pid &> /dev/null
wait $defrag_pid &> /dev/null
# Wait for the defrag operation to finish.
- while ps aux | grep "btrfs filesystem defrag" | grep -qv grep; do
+ while pgrep -f "btrfs filesystem defrag" > /dev/null; do
sleep 1
done
}
@@ -444,7 +444,7 @@ _btrfs_kill_stress_remount_compress_pid()
kill $remount_pid &> /dev/null
wait $remount_pid &> /dev/null
# Wait for the remount loop to finish.
- while ps aux | grep "mount.*${btrfs_mnt}" | grep -qv grep; do
+ while pgrep -f "mount.*${btrfs_mnt}" > /dev/null; do
sleep 1
done
}
@@ -507,7 +507,7 @@ _btrfs_kill_stress_replace_pid()
kill $replace_pid &> /dev/null
wait $replace_pid &> /dev/null
# Wait for the replace operation to finish.
- while ps aux | grep "replace start" | grep -qv grep; do
+ while pgrep -f "btrfs replace start" > /dev/null; do
sleep 1
done
}
diff --git a/tests/btrfs/132 b/tests/btrfs/132
index f50420f51181..b48395c1884f 100755
--- a/tests/btrfs/132
+++ b/tests/btrfs/132
@@ -70,7 +70,7 @@ kill $pids
wait
# Wait all writers really exits
-while ps aux | grep "$SCRATCH_MNT" | grep -qv grep; do
+while pgrep -f "$SCRATCH_MNT" > /dev/null; do
sleep 1
done