From nobody@FreeBSD.org  Wed Nov  7 22:36:28 2012
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 92105533
	for <freebsd-gnats-submit@FreeBSD.org>; Wed,  7 Nov 2012 22:36:28 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22])
	by mx1.freebsd.org (Postfix) with ESMTP id 7A0B98FC12
	for <freebsd-gnats-submit@FreeBSD.org>; Wed,  7 Nov 2012 22:36:28 +0000 (UTC)
Received: from red.freebsd.org (localhost [127.0.0.1])
	by red.freebsd.org (8.14.5/8.14.5) with ESMTP id qA7MaRmR083069
	for <freebsd-gnats-submit@FreeBSD.org>; Wed, 7 Nov 2012 22:36:27 GMT
	(envelope-from nobody@red.freebsd.org)
Received: (from nobody@localhost)
	by red.freebsd.org (8.14.5/8.14.5/Submit) id qA7MaRcJ083068;
	Wed, 7 Nov 2012 22:36:27 GMT
	(envelope-from nobody)
Message-Id: <201211072236.qA7MaRcJ083068@red.freebsd.org>
Date: Wed, 7 Nov 2012 22:36:27 GMT
From: Denis Generalov <gd@rambler-co.ru>
To: freebsd-gnats-submit@FreeBSD.org
Subject: service(8) does not respect /etc/rc.conf.d/name
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         173454
>Category:       bin
>Synopsis:       [patch] service(8) does not respect /etc/rc.conf.d/name
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Nov 07 22:40:00 UTC 2012
>Closed-Date:    
>Last-Modified:  Tue Apr  8 14:20:02 UTC 2014
>Originator:     Denis Generalov
>Release:        FreeBSD 9.0-STABLE amd64
>Organization:
Rambler
>Environment:
FreeBSD tyl.rambler.ramblermedia.com 9.0-STABLE FreeBSD 9.0-STABLE #1: Tue Feb 14 22:57:58 MSK 2012     root@tyl2.park.rambler.ru:/usr/obj/usr/src/sys/GENERIC  amd64
>Description:
service does not looks at /etc/rc.conf.d/name when generates enabled services list
>How-To-Repeat:
put <servicename>_enable="YES" or <servicename>_enable="NO" in /etc/rc.conf.d/<servicename> and run service -e
>Fix:
patch attached

Patch attached with submission follows:

--- usr.sbin/service/service.sh.orig	2012-11-08 02:24:20.000000000 +0400
+++ usr.sbin/service/service.sh	2012-11-08 02:27:09.000000000 +0400
@@ -71,7 +71,9 @@
 		if grep -q ^rcvar $file; then
 			eval `grep ^name= $file`
 			eval `grep ^rcvar $file`
+			load_rc_config_var ${name} ${rcvar}
 			checkyesno $rcvar 2>/dev/null && echo $file
+			unset ${rcvar}
 		fi
 	done
 	exit 0


>Release-Note:
>Audit-Trail:

From: GD <giantlock@gmail.com>
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: bin/173454: [patch] service(8) does not respect /etc/rc.conf.d/name
Date: Fri, 9 Nov 2012 13:01:46 +0400

 --001636a7d91484b46f04ce0c330f
 Content-Type: text/plain; charset=ISO-8859-1
 
 Ouch, this patch is little bit wrong, here new one.
 
 --001636a7d91484b46f04ce0c330f
 Content-Type: text/plain; charset=US-ASCII; name="patch.txt"
 Content-Disposition: attachment; filename="patch.txt"
 Content-Transfer-Encoding: base64
 X-Attachment-Id: f_h9b2t61o0
 
 LS0tIHVzci5zYmluL3NlcnZpY2Uvc2VydmljZS5zaC5vcmlnCTIwMTItMTEtMDggMDI6MjQ6MjAu
 MDAwMDAwMDAwICswNDAwCisrKyB1c3Iuc2Jpbi9zZXJ2aWNlL3NlcnZpY2Uuc2gJMjAxMi0xMS0w
 OCAwMjoyNzowOS4wMDAwMDAwMDAgKzA0MDAKQEAgLTcxLDcgKzcxLDggQEAKIAkJaWYgZ3JlcCAt
 cSBecmN2YXIgJGZpbGU7IHRoZW4KIAkJCWV2YWwgYGdyZXAgXm5hbWU9ICRmaWxlYAogCQkJZXZh
 bCBgZ3JlcCBecmN2YXIgJGZpbGVgCisJCQlsb2FkX3JjX2NvbmZpZ192YXIgJHtuYW1lfSAke3Jj
 dmFyfQogCQkJY2hlY2t5ZXNubyAkcmN2YXIgMj4vZGV2L251bGwgJiYgZWNobyAkZmlsZQogCQlm
 aQogCWRvbmUKIAlleGl0IDAK
 --001636a7d91484b46f04ce0c330f--

From: Mike Carlson <m87carlson@gmail.com>
To: bug-followup@FreeBSD.org, gd@rambler-co.ru
Cc:  
Subject: Re: bin/173454: [patch] service(8) does not respect /etc/rc.conf.d/name
Date: Fri, 1 Mar 2013 11:04:06 -0800

 --20cf307d0568dd81d104d6e1ab1e
 Content-Type: text/plain; charset=ISO-8859-1
 
 I submitted a duplicate bug report the other day, PR bin/176488, and found
 this one.
 
 The submitted patch does fix the issue of service -e not reporting rcng
 enabled services.
 
 Can this get tested and fixed in 9.1?
 
 --20cf307d0568dd81d104d6e1ab1e
 Content-Type: text/html; charset=ISO-8859-1
 Content-Transfer-Encoding: quoted-printable
 
 <div dir=3D"ltr"><div><div>I submitted a duplicate bug report the other day=
 , PR bin/176488, and found this one.<br><br>The submitted patch does fix th=
 e issue of service -e not reporting rcng enabled services.<br><br></div>Can=
  this get tested and fixed in 9.1?<br>
 </div></div>
 
 --20cf307d0568dd81d104d6e1ab1e--

From: "Aslak Raanes" <aslakr@idi.ntnu.no>
To: bug-followup@FreeBSD.org, gd@rambler-co.ru
Cc:  
Subject: Re: bin/173454: [patch] service(8) does not respect
 /etc/rc.conf.d/name
Date: Tue, 08 Apr 2014 16:16:26 +0200

 It seems like this bug still apply to 10.0-RELEASE. Since 
 /etc/rc.conf.d/ overrides /etc/rc.conf, using `service -e` will give a 
 wrong impression on which services are enabled.
 
 
      $ uname -sr
      FreeBSD 10.0-RELEASE
 
      $ service -e | grep bsnmpd
 
      $ service bsnmpd rcvar
      # bsnmpd
      #
      bsnmpd_enable="NO"
      #   (default: "")
 
      $ echo 'bsnmpd_enable="YES"' >> /etc/rc.conf
 
      $ service -e | grep bsnmpd
      /etc/rc.d/bsnmpd
 
      $ service bsnmpd rcvar
      # bsnmpd
      #
      bsnmpd_enable="YES"
      #   (default: "")
 
      $ echo 'bsnmpd_enable="NO"' >> /etc/rc.conf.d/bsnmpd
 
      $ service -e| grep bsnmpd
      /etc/rc.d/bsnmpd
 
      $ service bsnmpd rcvar
      # bsnmpd
      #
      bsnmpd_enable="NO"
      #   (default: "")
 
      $ /etc/rc.d/bsnmpd start
      Cannot 'start' bsnmpd. Set bsnmpd_enable to YES in /etc/rc.conf or 
 use 'onestart' instead of 'start'.
 
      $ echo 'bsnmpd_enable="YES"' >> /etc/rc.conf.d/bsnmpd
 
      $ service bsnmpd rcvar
      # bsnmpd
      #
      bsnmpd_enable="YES"
      #   (default: "")
 
      $ echo 'bsnmpd_enable="NO"' >> /etc/rc.conf
 
      $ grep bsnmpd_enable /etc/rc.conf
      bsnmpd_enable="YES"
      bsnmpd_enable="NO"
 
      $ cat /etc/rc.conf.d/bsnmpd
      bsnmpd_enable="NO"
      bsnmpd_enable="YES"
 
      $ service bsnmpd rcvar
      # bsnmpd
      #
      bsnmpd_enable="YES"
      #   (default: "")
>Unformatted:
