|
Description
|
If a native non-global zone is getting created and installed on Solaris 10 and
Solaris Express (aka Nevada), it will inherit the locales installed within
the global zone. So while the default locales do not need to be set to match
between global zone and non.global zones, the locale itself would be
available.
OpenSolaris does not have a native brand-type - the default there is the
ipkg brand type. If a ipkg non-global zone is getting created and installed
on OpenSolaris, it will not inherit the locales installed within the
global zone. Instead it has the very basic set (like C, POSIX), but none
else. Even the locale command is not getting installed.
On such a default installation, if you perform
zlogin <zonename> <command>
you will see a message send to stderr like:
en_US.UTF-8: unknown locale
if en_US.UTF-8 is the default locale within the global zone.
And in most cases stderr is not being processed. But within the validate method
for sczsmf there is one check to see if the SMF service being provided in the
config file exists and all of the services it depends on are online:
[...]
if STATE=`${ZLOGIN} ${ZONE} svcs -Hd ${SERVICE} 2> ${LOGFILE} | /usr/bin/awk '{if ($1 != "online") print $3 " which is " $1}'`
then
if [ -s "${LOGFILE}" ]
then
# e.g. svcs: Pattern 'X' doesn't match any instances
log_message error validate
rc_validate=1
fi
[...]
And here the output to stderr is captured and evaluated. Normally it is expected
to be empty - if it is not it triggers validate to fail.
Since the zlogin will always create the "unknown locale" message to stderr,
the code will always think the provided SMF service does not exist and
error out.
|