Re: [PATCH] common/btrfs: lookup running processes using pgrep

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]





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





[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux