svn commit: r268641 - head/usr.sbin/service

dteske at FreeBSD.org dteske at FreeBSD.org
Wed Jul 16 02:48:59 UTC 2014



> -----Original Message-----
> From: owner-src-committers at freebsd.org [mailto:owner-src-
> committers at freebsd.org] On Behalf Of Mateusz Guzik
> Sent: Tuesday, July 15, 2014 12:16 PM
> To: Bryan Drewery
> Cc: Devin Teske; src-committers at freebsd.org; svn-src-all at freebsd.org; svn-
> src-head at freebsd.org
> Subject: Re: svn commit: r268641 - head/usr.sbin/service
> 
> On Tue, Jul 15, 2014 at 12:59:05PM -0500, Bryan Drewery wrote:
> > On 7/14/2014 9:18 PM, Devin Teske wrote:
> > > Author: dteske
> > > Date: Tue Jul 15 02:18:55 2014
> > > New Revision: 268641
> > > URL: http://svnweb.freebsd.org/changeset/base/268641
> > >
> > > Log:
> > >   Fix an issue with service(8) where utilities such as screen(1) and tmux(1)
> > >   would behave differently when utilizing rc-script was invoked manually
> vs.
> > >   service(8). The issue being that these utilities require the TERM environ
> > >   variable to be set and service(8) was not passing it down.
> > >
> > >   Reported by:	Michael Dexter <editor at callfortesting.org>
> > >   PR:		bin/191869
> > >   Reviewed by:	allanjude
> > >   MFC after:	3 days
> > >   X-MFC-to:	stable/10, stable/9
> > >
> > > Modified:
> > >   head/usr.sbin/service/service.sh
> > >
> > > Modified: head/usr.sbin/service/service.sh
> > >
> ==========================================================
> ====================
> > > --- head/usr.sbin/service/service.sh	Tue Jul 15 01:03:29 2014
> 	(r268640)
> > > +++ head/usr.sbin/service/service.sh	Tue Jul 15 02:18:55 2014
> 	(r268641)
> > > @@ -139,7 +139,7 @@ cd /
> > >  for dir in /etc/rc.d $local_startup; do
> > >  	if [ -x "$dir/$script" ]; then
> > >  		[ -n "$VERBOSE" ] && echo "$script is located in $dir"
> > > -		exec env -i HOME=/ PATH=/sbin:/bin:/usr/sbin:/usr/bin
> $dir/$script $*
> > > +		exec env -i HOME=/ PATH=/sbin:/bin:/usr/sbin:/usr/bin
> TERM="$TERM" $dir/$script $*
> > >  	fi
> > >  done
> > >
> > >
> >
> > Hm, I'm not sure about this. The "behaves differently" is exactly the
> > reason for service(8). It runs with a clean environment such as the boot
> > does. Running an rc script without service(8) will give wrong behavior
> > in many scripts that do not match boot-time behavior.
> >
> 
> Indeed, the whole point is to NOT inherit anything from calling process.
> 

If that were the point, then we have an issue. Because as it stands,
service(8) does _not_ accurately provide the same environment as boot.

Take the following boot script:

dteske at scribe9.vicor.com ~ $ cat /etc/rc.d/foo
#!/bin/sh
# PROVIDE: foo
set > /tmp/termtest
. /etc/rc.subr
name=foo
rcvar=foo_enable
command="/usr/local/bin/tmux"
foo_flags="new -s foo ls"
load_rc_config $name
run_rc_command "$1"

Now reboot to find the following in /tmp/termtest:

dteske at scribe9.vicor.com ~ $ cat /tmp/termtest
HOME=/
ID=/usr/bin/id
IDCMD='if [ -x /usr/bin/id ]; then /usr/bin/id -un; fi'
IFS='
'
JID=0
OPTIND=1
PATH=/sbin:/bin:/usr/sbin:/usr/bin
PPID=1
PS1='# '
PS2='> '
PS4='+ '
PS='/bin/ps -ww'
PWD=/
RC_PID=19
SYSCTL=/sbin/sysctl
SYSCTL_N='/sbin/sysctl -n'
SYSCTL_W=/sbin/sysctl
_arg=faststart
_boot=faststart
_file=/etc/rc.d/foo
_rc_conf_loaded=true
_rc_elem=/etc/rc.d/foo
_rc_elem_done=' /etc/rc.d/sysctl /etc/rc.d/hostid /etc/rc.d/zvol /etc/rc.d/dumpon /etc/rc.d/ddb /etc/rc.d/initrandom /etc/rc.d/geli /etc/rc.d/gbde /etc/rc.d/encswap /etc/rc.d/ccd /etc/rc.d/swap1 /etc/rc.d/fsck /etc/rc.d/root /etc/rc.d/mdconfig /etc/rc.d/hostid_save /etc/rc.d/mountcritlocal /etc/rc.d/zfs /etc/rc.d/var /etc/rc.d/cleanvar /etc/rc.d/FILESYSTEMS '
_rc_namevarlist='program chroot chdir flags fib nice user group groups'
_rc_subr_loaded=:
accept_sourceroute=NO
accounting_enable=NO
allscreens_flags=''
allscreens_kbdflags=''
always_force_depends=NO
amd_enable=NO
amd_flags='-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map'
amd_map_program=NO
amd_program=/usr/sbin/amd
apm_enable=NO
apmd_enable=NO
apmd_flags=''
arpproxy_all=NO
atm_arps=''
atm_enable=NO
atm_pvcs=''
auditd_enable=NO
auditd_flags=''
auditd_program=/usr/sbin/auditd
auditdistd_enable=NO
auditdistd_flags=''
auditdistd_program=/usr/sbin/auditdistd
autoboot=yes
background_dhclient=NO
background_fsck=YES
background_fsck_delay=60
bhyve_enable=NO
bhyve_profiles='virt1 virt2'
blanktime=300
bootparamd_enable=NO
bootparamd_flags=''
bsdextended_script=/etc/rc.bsdextended
bsnmpd_enable=NO
bsnmpd_flags=''
bthidd_config=/etc/bluetooth/bthidd.conf
bthidd_enable=NO
bthidd_hids=/var/db/bthidd.hids
check_quotas=YES
chkprintcap_enable=NO
chkprintcap_flags=-d
cleanvar_enable=YES
clear_tmp_X=YES
clear_tmp_enable=NO
cloned_interfaces=''
crashinfo_enable=YES
crashinfo_program=/usr/sbin/crashinfo
cron_dst=YES
cron_enable=YES
cron_flags=''
cron_program=/usr/sbin/cron
cursor=NO
ddb_config=/etc/ddb.conf
ddb_enable=NO
defaultroute_carrier_delay=5
defaultroute_delay=30
defaultrouter=172.16.169.2
devd_enable=YES
devd_flags=''
devfs_load_rulesets=NO
devfs_rulesets='/etc/defaults/devfs.rules /etc/devfs.rules'
devfs_set_rulesets=''
devfs_system_ruleset=''
dhclient_flags=''
dhclient_program=/sbin/dhclient
dir=/usr/local/etc/rc.d
dlv=0
dmesg_enable=YES
dummynet_enable=NO
dumpdev=NO
dumpdir=/var/crash
early_late_divider=FILESYSTEMS
economy_cpu_freq=NONE
economy_cx_lowest=HIGH
entropy_dir=/var/db/entropy
entropy_file=/entropy
entropy_save_num=8
entropy_save_sz=2048
extra_netfs_types=NO
fec_interfaces=''
file=/usr/local/etc/rc.d/svnserve
files='/etc/rc.d/sysctl
/etc/rc.d/hostid
/etc/rc.d/zvol
/etc/rc.d/dumpon
/etc/rc.d/ddb
/etc/rc.d/initrandom
/etc/rc.d/geli
/etc/rc.d/gbde
/etc/rc.d/encswap
/etc/rc.d/ccd
/etc/rc.d/swap1
/etc/rc.d/fsck
/etc/rc.d/root
/etc/rc.d/mdconfig
/etc/rc.d/hostid_save
/etc/rc.d/mountcritlocal
/etc/rc.d/zfs
/etc/rc.d/var
/etc/rc.d/cleanvar
/etc/rc.d/FILESYSTEMS
/etc/rc.d/kldxref
/etc/rc.d/kld
/etc/rc.d/addswap
/etc/rc.d/random
/etc/rc.d/adjkerntz
/etc/rc.d/atm1
/etc/rc.d/hostname
/etc/rc.d/ip6addrctl
/etc/rc.d/netoptions
/etc/rc.d/sppp
/etc/rc.d/ipfilter
/etc/rc.d/ipnat
/etc/rc.d/ipfs
/etc/rc.d/serial
/etc/rc.d/netif
/etc/rc.d/devd
/etc/rc.d/ipsec
/etc/rc.d/atm2
/etc/rc.d/pfsync
/etc/rc.d/pflog
/etc/rc.d/pf
/etc/rc.d/stf
/etc/rc.d/ppp
/etc/rc.d/faith
/etc/rc.d/routing
/etc/rc.d/mroute6d
/etc/rc.d/nsswitch
/etc/rc.d/rtsold
/etc/rc.d/static_ndp
/etc/rc.d/static_arp
/etc/rc.d/bridge
/etc/rc.d/resolv
/etc/rc.d/route6d
/etc/rc.d/mrouted
/etc/rc.d/routed
/etc/rc.d/defaultroute
/etc/rc.d/ipfw
/etc/rc.d/NETWORKING
/etc/rc.d/netwait
/etc/rc.d/mountcritremote
/etc/rc.d/accounting
/etc/rc.d/ldconfig
/etc/rc.d/devfs
/etc/rc.d/ipmon
/etc/rc.d/mdconfig2
/etc/rc.d/newsyslog
/etc/rc.d/syslogd
/etc/rc.d/watchdogd
/etc/rc.d/savecore
/etc/rc.d/archdep
/etc/rc.d/abi
/etc/rc.d/SERVERS
/etc/rc.d/named
/etc/rc.d/ntpdate
/etc/rc.d/rpcbind
/etc/rc.d/nfsclient
/etc/rc.d/nisdomain
/etc/rc.d/ypserv
/etc/rc.d/ypbind
/etc/rc.d/ypset
/etc/rc.d/amd
/etc/rc.d/atm3
/etc/rc.d/auditd
/etc/rc.d/auditdistd
/etc/rc.d/tmp
/etc/rc.d/cleartmp
/etc/rc.d/dmesg
/etc/rc.d/hastd
/etc/rc.d/ipxrouted
/etc/rc.d/kerberos
/etc/rc.d/kadmind
/etc/rc.d/keyserv
/etc/rc.d/kpasswdd
/etc/rc.d/nfsuserd
/etc/rc.d/gssd
/etc/rc.d/quota
/etc/rc.d/mountd
/etc/rc.d/nfsd
/etc/rc.d/statd
/etc/rc.d/lockd
/etc/rc.d/pppoed
/etc/rc.d/pwcheck
/etc/rc.d/virecover
/usr/local/etc/rc.d/stunnel
/etc/rc.d/DAEMON
/usr/local/etc/rc.d/svnserve
/etc/rc.d/apm
/etc/rc.d/apmd
/etc/rc.d/bootparams
/etc/rc.d/hcsecd
/etc/rc.d/bthidd
/etc/rc.d/local
/etc/rc.d/lpd
/etc/rc.d/motd
/etc/rc.d/mountlate
/etc/rc.d/nscd
/etc/rc.d/ntpd
/etc/rc.d/powerd
/etc/rc.d/rarpd
/etc/rc.d/rctl
/etc/rc.d/sdpd
/etc/rc.d/rfcomm_pppd_server
/etc/rc.d/rtadvd
/etc/rc.d/rwho
/etc/rc.d/timed
/etc/rc.d/ugidfw
/etc/rc.d/yppasswdd
/etc/rc.d/LOGIN
/usr/local/etc/rc.d/rsyncd
/usr/local/etc/rc.d/p4d
/usr/local/etc/rc.d/mcwatchdog
/usr/local/etc/rc.d/git_daemon
/usr/local/etc/rc.d/dbus
/etc/rc.d/ypxfrd
/etc/rc.d/ypupdated
/etc/rc.d/ubthidhci
/etc/rc.d/syscons
/etc/rc.d/sshd
/etc/rc.d/sendmail
/etc/rc.d/cron
/etc/rc.d/jail
/etc/rc.d/localpkg
/etc/rc.d/securelevel
/etc/rc.d/othermta
/etc/rc.d/nfscbd
/etc/rc.d/msgs
/etc/rc.d/moused
/etc/rc.d/mixer
/etc/rc.d/inetd
/etc/rc.d/hostapd
/etc/rc.d/gptboot
/etc/rc.d/geli2
/etc/rc.d/ftpd
/etc/rc.d/ftp-proxy
/etc/rc.d/foo
/etc/rc.d/bsnmpd
/etc/rc.d/bgfsck'
firewall_allowservices=''
firewall_client_net=192.0.2.0/24
firewall_coscripts=''
firewall_enable=NO
firewall_flags=''
firewall_logdeny=NO
firewall_logging=NO
firewall_myservices=''
firewall_nat_enable=NO
firewall_nat_flags=''
firewall_nat_interface=''
firewall_nologports='135-139,445 1026,1027 1433,1434'
firewall_quiet=NO
firewall_script=/etc/rc.firewall
firewall_simple_iif=ed1
firewall_simple_inet=192.0.2.16/28
firewall_simple_oif=ed0
firewall_simple_onet=192.0.2.0/28
firewall_trusted=''
firewall_type=UNKNOWN
font8x14=NO
font8x16=NO
font8x8=NO
foo_enable=YES
forward_sourceroute=NO
fsck_y_enable=NO
fsck_y_flags=''
ftpd_enable=NO
ftpd_flags=''
ftpd_program=/usr/libexec/ftpd
ftpproxy_enable=NO
ftpproxy_flags=''
gateway_enable=NO
gbde_attach_attempts=3
gbde_autoattach_all=NO
gbde_devices=NO
gbde_lockdir=/etc
geli_autodetach=YES
geli_default_flags=''
geli_devices=''
geli_swap_flags='-e aes -l 256 -s 4096 -d'
geli_tries=''
gif_interfaces=''
gptboot_enable=YES
gssd_enable=NO
gssd_flags=''
harvest_ethernet=YES
harvest_interrupt=YES
harvest_p_to_p=YES
hastd_enable=NO
hastd_flags=''
hastd_program=/sbin/hastd
hcsecd_config=/etc/bluetooth/hcsecd.conf
hcsecd_enable=NO
hostapd_enable=NO
hostid_enable=YES
hostid_file=/etc/hostid
hostname=scribe9.vicor.com
ibcs2_enable=NO
ibcs2_loaders=coff
icmp_bmcastecho=NO
icmp_drop_redirect=NO
icmp_log_redirect=NO
ifconfig_em0=DHCP
ike_enable=NO
ike_flags=''
ike_program=/usr/local/sbin/isakmpd
inetd_enable=NO
inetd_flags='-wW -C 60'
inetd_program=/usr/sbin/inetd
ip6addrctl_enable=YES
ip6addrctl_policy=AUTO
ip6addrctl_verbose=NO
ip_portrange_first=NO
ip_portrange_last=NO
ipfilter_enable=NO
ipfilter_flags=''
ipfilter_program=/sbin/ipf
ipfilter_rules=/etc/ipf.rules
ipfs_enable=NO
ipfs_flags=''
ipfs_program=/sbin/ipfs
ipmon_enable=NO
ipmon_flags=-Ds
ipmon_program=/sbin/ipmon
ipnat_enable=NO
ipnat_flags=''
ipnat_program=/sbin/ipnat
ipnat_rules=/etc/ipnat.rules
ipsec_enable=NO
ipsec_file=/etc/ipsec.conf
ipv6_activate_all_interfaces=NO
ipv6_cpe_wanif=NO
ipv6_default_interface=NO
ipv6_defaultrouter=NO
ipv6_faith_prefix=NO
ipv6_gateway_enable=NO
ipv6_ipfilter_rules=/etc/ipf6.rules
ipv6_ipv4mapping=NO
ipv6_network_interfaces=auto
ipv6_privacy=NO
ipv6_static_routes=''
ipxgateway_enable=NO
ipxrouted_enable=NO
ipxrouted_flags=''
jail_enable=NO
jail_list=''
jail_parallel_start=NO
jail_set_hostname_allow=YES
jail_socket_unixiproute_only=YES
jail_sysvipc_allow=NO
kadmind5_server=/usr/libexec/kadmind
kadmind5_server_enable=NO
kerberos5_server=/usr/libexec/kdc
kerberos5_server_enable=NO
kerberos5_server_flags=--detach
kern_securelevel=-1
kern_securelevel_enable=NO
keybell=NO
keyboard=''
keychange=NO
keymap=NO
keyrate=fast
keyserv_enable=NO
keyserv_flags=''
kldxref_clobber=NO
kldxref_enable=NO
kldxref_module_path=''
kpasswdd_server=/usr/libexec/kpasswdd
kpasswdd_server_enable=NO
ldconfig32_paths=/usr/lib32
ldconfig_insecure=NO
ldconfig_local32_dirs=/usr/local/libdata/ldconfig32
ldconfig_local_dirs=/usr/local/libdata/ldconfig
ldconfig_paths='/usr/lib/compat /usr/local/lib /usr/local/lib/compat/pkg'
ldconfig_paths_aout='/usr/lib/compat/aout /usr/local/lib/aout'
linux_enable=NO
local_rc=' /usr/local/etc/rc.d/dbus /usr/local/etc/rc.d/git_daemon /usr/local/etc/rc.d/mcwatchdog /usr/local/etc/rc.d/p4d /usr/local/etc/rc.d/rsyncd /usr/local/etc/rc.d/stunnel /usr/local/etc/rc.d/svnserve'
local_startup=/usr/local/etc/rc.d
log_in_vain=0
lpd_enable=NO
lpd_flags=''
lpd_program=/usr/sbin/lpd
mcwatchdog_enable=YES
mixer_enable=YES
mountd_enable=YES
mountd_flags=-r
mousechar_start=NO
moused_enable=YES
moused_flags=''
moused_nondefault_enable=YES
moused_port=/dev/psm0
moused_type=auto
mroute6d_enable=NO
mroute6d_flags=''
mroute6d_program=/usr/local/sbin/pim6dd
mrouted_enable=NO
mrouted_flags=''
mrouted_program=/usr/local/sbin/mrouted
mta_start_script=/etc/rc.sendmail
named_auto_forward=NO
named_auto_forward_only=NO
named_chroot_autoupdate=YES
named_chrootdir=/var/named
named_conf=/etc/namedb/named.conf
named_enable=NO
named_program=/usr/sbin/named
named_symlink_enable=YES
named_uid=bind
named_wait=NO
named_wait_host=localhost
natd_enable=NO
natd_flags=''
natd_interface=''
natd_program=/sbin/natd
natm_static_routes=''
netfs_types='nfs:NFS oldnfs:OLDNFS smbfs:SMB portalfs:PORTAL nwfs:NWFS'
netwait_enable=YES
netwait_if_timeout=30
netwait_timeout=60
network_interfaces=auto
newsyslog_enable=YES
newsyslog_flags=-CN
nfs_access_cache=60
nfs_bufpackets=''
nfs_client_enable=NO
nfs_reserved_port_only=NO
nfs_server_enable=YES
nfs_server_flags='-u -t -n 4'
nfscbd_enable=NO
nfscbd_flags=''
nfsuserd_enable=NO
nfsuserd_flags=''
nfsv4_server_enable=NO
nis_client_enable=NO
nis_client_flags=''
nis_server_enable=NO
nis_server_flags=''
nis_yppasswdd_enable=NO
nis_yppasswdd_flags=''
nis_ypset_enable=NO
nis_ypset_flags=''
nis_ypxfrd_enable=NO
nis_ypxfrd_flags=''
nisdomainname=NO
nscd_enable=NO
ntpd_config=/etc/ntp.conf
ntpd_enable=NO
ntpd_flags='-p /var/run/ntpd.pid -f /var/db/ntpd.drift'
ntpd_program=/usr/sbin/ntpd
ntpd_sync_on_start=NO
ntpdate_config=/etc/ntp.conf
ntpdate_enable=YES
ntpdate_flags=-b
ntpdate_hosts=time-nw.nist.gov
ntpdate_program=/usr/sbin/ntpdate
oldnfs_server_enable=NO
opensm_enable=NO
performance_cpu_freq=NONE
performance_cx_lowest=HIGH
pf_enable=NO
pf_flags=''
pf_program=/sbin/pfctl
pf_rules=/etc/pf.conf
pflog_enable=NO
pflog_flags=''
pflog_logfile=/var/log/pflog
pflog_program=/sbin/pflogd
pfsync_enable=NO
pfsync_ifconfig=''
pfsync_syncdev=''
pfsync_syncpeer=''
populate_var=AUTO
powerd_enable=NO
powerd_flags=''
ppp_enable=NO
ppp_mode=auto
ppp_nat=YES
ppp_profile=papchap
ppp_program=/usr/sbin/ppp
ppp_user=root
pppoed_enable=NO
pppoed_flags='-P /var/run/pppoed.pid'
pppoed_interface=fxp0
pppoed_provider='*'
quota_enable=NO
quotacheck_flags=-a
quotaoff_flags=-a
quotaon_flags=-a
rarpd_enable=NO
rarpd_flags=-a
rc_conf_files='/etc/rc.conf /etc/rc.conf.local'
rc_debug=NO
rc_fast=yes
rc_info=NO
rc_startmsgs=YES
rcshutdown_timeout=90
rfcomm_pppd_server_enable=NO
rfcomm_pppd_server_one_channel=1
rfcomm_pppd_server_profile='one two'
rfcomm_pppd_server_two_channel=3
root_rw_mount=YES
route6d_enable=NO
route6d_flags=''
route6d_program=/usr/sbin/route6d
routed_enable=NO
routed_flags=-q
routed_program=/sbin/routed
rpc_lockd_enable=YES
rpc_lockd_flags=''
rpc_statd_enable=YES
rpc_statd_flags=''
rpc_ypupdated_enable=NO
rpcbind_enable=NO
rpcbind_flags=''
rpcbind_program=/usr/sbin/rpcbind
rtadvd_enable=NO
rtadvd_interfaces=''
rtsol_flags=''
rtsold_enable=NO
rtsold_flags=-a
rwhod_enable=NO
rwhod_flags=''
savecore_flags=''
saver=beastie
script_name_sep=' '
scrnmap=NO
sdpd_control=/var/run/sdp
sdpd_enable=NO
sdpd_groupname=nobody
sdpd_username=nobody
sendmail_enable=NO
sendmail_flags='-L sm-mta -bd -q30m'
sendmail_msp_queue_enable=YES
sendmail_msp_queue_flags='-L sm-msp-queue -Ac -q30m'
sendmail_outbound_enable=YES
sendmail_outbound_flags='-L sm-queue -q30m'
sendmail_pidfile=/var/run/sendmail.pid
sendmail_procname=/usr/sbin/sendmail
sendmail_rebuild_aliases=NO
sendmail_submit_enable=YES
sendmail_submit_flags='-L sm-mta -bd -q30m -ODaemonPortOptions=Addr=localhost'
skip='-s nostart'
source_rc_confs_defined=yes
sppp_interfaces=''
sshd_enable=YES
sshd_flags='-g 300'
sshd_program=/usr/sbin/sshd
static_arp_pairs=''
static_ndp_pairs=''
static_routes=''
stf_interface_ipv4addr=''
stf_interface_ipv4plen=0
stf_interface_ipv6_ifid=0:0:0:1
stf_interface_ipv6_slaid=0000
svr4_enable=NO
swapfile=NO
synchronous_dhclient=NO
syslogd_enable=YES
syslogd_flags=-s
syslogd_program=/usr/sbin/syslogd
sysvipc_enable=NO
tcp_drop_synfin=NO
tcp_extensions=YES
tcp_keepalive=YES
timed_enable=NO
timed_flags=''
tmpmfs=AUTO
tmpmfs_flags=-S
tmpsize=20m
ubthidhci_enable=NO
ugidfw_enable=NO
update_motd=YES
varmfs=AUTO
varmfs_flags=-S
varsize=32m
virecover_enable=YES
watchdogd_enable=NO
watchdogd_flags=''
weak_mountd_authentication=NO
wpa_supplicant_conf_file=/etc/wpa_supplicant.conf
wpa_supplicant_flags=-s
wpa_supplicant_program=/usr/sbin/wpa_supplicant
zfs_enable=YES

Compare that with the following:

dteske at scribe9.vicor.com ~ $ sr service foo start
dteske at scribe9.vicor.com ~ $ cat /tmp/termtest
HOME=/
IFS='
'
OPTIND=1
PATH=/sbin:/bin:/usr/sbin:/usr/bin
PPID=1285
PS1='# '
PS2='> '
PS4='+ '
PWD=/

Looks to me like some things are being inherited.
Notably, it would appear that the rc.d scripts are
run within the parent namespace which has had
source_rc_confs() called (I'm leaving alone for the
moment that this indicates that each rc-script is
being less than efficient by re-sourcing rc.subr).

Given the above (that we are farther from a "clean
environment" than one might expect), is it really
that big of a deal to expose $TERM? If so, what are
the serious issues that could arise?

I personally cannot think of any shortcomings or
fallout from adding $TERM to be exposed.
-- 
Devin



More information about the svn-src-all mailing list