# Prefer systemd services over rc.d services to prevent restarting services
# twice.

diff --git a/needrestart b/needrestart
index eb88fcc..1738393 100755
--- a/needrestart
+++ b/needrestart
@@ -372,8 +372,11 @@ if(defined($opt_l)) {
 		close($systemctl);
 
 		if(defined($ret) && $ret =~ /([^.\s]+\.service) /) {
-		    print STDERR "$LOGPREF #$pid is $2\n" if($nrconf{verbose});
-		    $restart{$2}++;
+		    my $s = $2;
+		    print STDERR "$LOGPREF #$pid is $s\n" if($nrconf{verbose});
+		    $restart{$s}++;
+		    $s =~ s/\.service$//;
+		    delete($restart{$s});
 		    next;
 		}
 	    }
@@ -445,7 +448,12 @@ if(defined($opt_l)) {
 		# No perfect hit - call any rc scripts instead.
 		if(!$found && $#nopids > -1) {
 		    foreach my $rc (@nopids) {
-			$restart{$rc}++;
+			if($is_systemd && exists($restart{"$rc.service"})) {
+			    print STDERR "$LOGPREF #$pid rc.d script $rc seems to be superseeded by $rc.service\n" if($nrconf{verbose});
+			}
+			else {
+			    $restart{$rc}++;
+			}
 		    }
 		    $found++;
 		}
-- 
2.1.1

