From owner-freebsd-rc@FreeBSD.ORG Sat Apr 23 17:13:03 2011 Return-Path: Delivered-To: rc@freebsd.org Received: from mx2.freebsd.org (mx2.freebsd.org [IPv6:2001:4f8:fff6::35]) by hub.freebsd.org (Postfix) with ESMTP id 3EA25106566B for ; Sat, 23 Apr 2011 17:13:03 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from 65-241-43-5.globalsuite.net (hub.freebsd.org [IPv6:2001:4f8:fff6::36]) by mx2.freebsd.org (Postfix) with ESMTP id 0798514EFC1; Sat, 23 Apr 2011 17:13:02 +0000 (UTC) Message-ID: <4DB3089E.3070304@FreeBSD.org> Date: Sat, 23 Apr 2011 10:13:02 -0700 From: Doug Barton Organization: http://SupersetSolutions.com/ User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.9.2.15) Gecko/20110319 Thunderbird/3.1.9 MIME-Version: 1.0 To: Rick Macklem References: <295158163.384370.1303347263226.JavaMail.root@erie.cs.uoguelph.ca> In-Reply-To: <295158163.384370.1303347263226.JavaMail.root@erie.cs.uoguelph.ca> X-Enigmail-Version: 1.1.2 OpenPGP: id=1A1ABC84 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: rc@freebsd.org Subject: Re: rc scripts change for review X-BeenThere: freebsd-rc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion related to /etc/rc.d design and implementation." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Apr 2011 17:13:03 -0000 On 04/20/2011 17:54, Rick Macklem wrote: > Hi, > > I've attached modified versions of mountd and nfsd for /etc/rc.d, plus a > new one called nfssrv. These assume that the mountd and nfsd executables > have a new option "-o" which forces use of the old nfs server and that the > new nfs server is the default. Overall the diffs (http://people.freebsd.org/~rmacklem/rc.conf) seem Ok, but see below about nfssrv. > I also need to add: > oldnfs_server_enable="NO" > to /etc/defaults/rc.conf > - is there a preferred place for this? Near the other nfs related stuff. Please don't forget share/man/man5/rc.conf.5 as well. > One thing I am not sure about is the REQUIRE: list in mountd. > nfsserver and nfssrv essentially load the respective module. They are only > used if sysctl variables need to be set and that's actually done by nfsd. > (Should they be listed in mountd or nfsd or ???) It's not a good idea to add single scripts that only have a tiny function, especially if they are only called conditionally (I.e., they contain KEYWORD: nostart). It's preferred to handle these things things in the script that needs them, or if it's necessary in more than one script to add a function to the appropriate .subr (rc, or network). So can you say a little more about what you're trying to accomplish? It's not clear to me why instead of doing this: + if ! sysctl vfs.newnfs >/dev/null 2>&1; then + force_depend nfssrv || return 1 + fi you would not just do this: + if ! sysctl vfs.newnfs >/dev/null 2>&1; then + load_kld nfsd + fi And finally a meta-note, I admire that you are at least checking for success on your commands, but FYI rather than relying on return it's helpful to use either warn for advisories or err for fatal errors to provide more information about why things are failing. You can read up on these in the comments in /etc/rc.subr, and/or look in /etc/rc.d for examples of how they are used. hth, Doug -- Nothin' ever doesn't change, but nothin' changes much. -- OK Go Breadth of IT experience, and depth of knowledge in the DNS. Yours for the right price. :) http://SupersetSolutions.com/