commit 4e7e8a8123ef2fab1ba3a4bca348d4083d683d40
Author: Olivier Bilodeau <olivier@bottomlesspit.org>
Date:   Tue Sep 11 14:28:51 2012 -0400

    matching exact line with pgrep instead of partial match (#1545)
    
    Fixes regression when you have VLAN interface on a top interface also
    managed (ex: eth0 vs eth0.100) and on Debian no matter the case.
    
    http://packetfence.org/bugs/view.php?id=1545

diff --git a/lib/pf/services.pm b/lib/pf/services.pm
index e88962f..36d287a 100644
--- a/lib/pf/services.pm
+++ b/lib/pf/services.pm
@@ -246,7 +246,8 @@ sub service_ctl {
 
                     my $dead_flag;
                     foreach my $interface (keys %int_to_pid) {
-                        chomp($int_to_pid{$interface} = `pgrep -f "$binary: listening on $interface"`);
+                        # -f: whole command line, -x: exact match (fixes #1545)
+                        chomp($int_to_pid{$interface} = `pgrep -f -x "$binary: listening on $interface"`);
                         # if one check returned a false value ('' is false) then we failed the check
                         $dead_flag = $TRUE if (!$int_to_pid{$interface});
                     }
