svn commit: r200743 - in head/usr.sbin: . service

Doug Barton dougb at FreeBSD.org
Sun Dec 20 07:30:38 UTC 2009


I've reattached your original patch and included the freebsd-rc list.

Hajimu UMEMOTO wrote:
> Hi,
> 
>>>>>> On Sat, 19 Dec 2009 21:51:13 -0800
>>>>>> Doug Barton <dougb at FreeBSD.org> said:
> 
> dougb> Other than the removal of "exit $?" I'm not necessarily opposed to
> dougb> that idea, but I'm wondering what value this change would have in the
> dougb> "system is already up and running" case (when it will be executed) vs.
> dougb> at boot time (such as in /etc/rc where the code is copied from).
> 
> I don't just remove "exit $?".  Since the script is kicked by "exec",
> the return value from the script is returned to the process which
> kicked service(8), directly.

Good point, I did not read your patch carefully enough, sorry.

> About the value this change, I think it should be same as the values
> at boot time.  I cannot imagine that someone want to restart the
> system daemons under the user environment. 

I can actually, especially for ports.

> Even if someone want to do
> so, he still can kick /etc/rc.d/foo, directly.

The point of adding a service(8) is to avoid needing to do that. :)

> Further, it seems service(8) does similar thing on CentOS.

I've already made one too-hasty comment on your suggestion, so I will
take a step back and let other's chime in.


Doug

-- 

	Improve the effectiveness of your Internet presence with
	a domain name makeover!    http://SupersetSolutions.com/

-------------- next part --------------
Index: usr.sbin/service/service.sh
diff -u usr.sbin/service/service.sh.orig usr.sbin/service/service.sh
--- usr.sbin/service/service.sh.orig	2009-12-20 13:14:14.000000000 +0900
+++ usr.sbin/service/service.sh	2009-12-20 13:17:44.420246627 +0900
@@ -106,11 +106,15 @@
 	exit 1
 fi
 
+HOME=/
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+export HOME PATH
+cd $HOME
+
 for dir in /etc/rc.d $local_startup; do
 	if [ -x "$dir/$script" ]; then
 		[ -n "$VERBOSE" ] && echo "$script is located in $dir"
-		$dir/$script $*
-		exit $?
+		exec env -i HOME=$HOME PATH=$PATH $dir/$script $*
 	fi
 done
 


More information about the svn-src-head mailing list