i'm not to understand well what you mean with patch? here are the files i used on my server, if help: cat /var/svc/manifest/network/smtp-sndm2.xml <?xml version="1.0"?> <!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1"> <!-- Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.
ident "@(#)smtp-sndm2.xml 1.0 04/11/05 GPG" --> <service_bundle type='manifest' name='sndm2'> <service name='network/smtp' type='service' version='1'> <single_instance /> <dependency name='fs-local' grouping='require_all' restart_on='none' type='service'> <service_fmri value='svc:/system/filesystem/local' /> </dependency> <dependency name='network-service' grouping='require_all' restart_on='none' type='service'> <service_fmri value='svc:/network/service' /> </dependency> <dependency name='name-services' grouping='require_all' restart_on='refresh' type='service'> <service_fmri value='svc:/milestone/name-services' /> </dependency> <dependency name='identity' grouping='optional_all' restart_on='refresh' type='service'> <service_fmri value='svc:/system/identity:domain' /> </dependency> <dependency name='system-log' grouping='optional_all' restart_on='none' type='service'> <service_fmri value='svc:/system/system-log' /> </dependency> <instance name='sndm2' enabled='true'> <dependency name='config-file' grouping='require_all' restart_on='refresh' type='path'> <service_fmri value='file://localhost/etc/mail/sendmail.cf' /> </dependency> <dependency name='nsswitch' grouping='require_all' restart_on='refresh' type='path'> <service_fmri value='file://localhost/etc/nsswitch.conf' /> </dependency> <!-- If autofs is enabled, wait for it to get users' home directories. --> <dependency name='autofs' grouping='optional_all' restart_on='none' type='service'> <service_fmri value='svc:/system/filesystem/autofs' /> </dependency> <dependent name='smtp-sndm2_multi-user' grouping='optional_all' restart_on='none'> <service_fmri value='svc:/milestone/multi-user' /> </dependent> <!-- Sendmail is hard-coded to sleep for 60 seconds if it cannot determine the FQHN, so the timeout for start must be longer than that. For details, see http://www.sendmail.org/vendor/sun/differences.html#3.2 --> <exec_method type='method' name='start' exec='/opt/smtp-sendmail start' timeout_seconds='120' /> <exec_method type='method' name='stop' exec='/opt/smtp-sendmail stop %{restarter/contract}' timeout_seconds='60' /> <exec_method type='method' name='refresh' exec='/opt/smtp-sendmail refresh' timeout_seconds='60' /> <property_group name='startd' type='framework'> <propval name='ignore_error' type='astring' value='core,signal' /> </property_group> <template> <common_name> <loctext xml:lang='C'> sndm2 SMTP mail transfer agent </loctext> </common_name> <documentation> <manpage title='sendmail' section='1' manpath='/usr/share/man' /> </documentation> </template> </instance> <stability value='Unstable' /> </service> </service_bundle> cat /opt/smtp-sendmail #!/sbin/sh # # Copyright 2006 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # ident "@(#)smtp-sendmail 1.26 06/08/01 SMI" . /lib/svc/share/smf_include.sh ERRMSG1='WARNING: /var/mail is NFS-mounted without setting actimeo=0,' ERRMSG2='this can cause mailbox locking and access problems.' SERVER_PID_FILE="/var/run/sendmail.pid" SERVER_PID_FILE2="/var/run/sendmail2.pid" CLIENT_PID_FILE="/var/spool/clientmqueue/sm-client.pid" DEFAULT_FILE="/etc/default/sendmail" ALIASES_FILE="/etc/mail/aliases" check_queue_interval_syntax() { default="15m" if [ $# -lt 1 ]; then answer=$default return fi if echo $1 | egrep '^([0-9]*[1-9][0-9]*[smhdw])+$' >/dev/null 2>&1; then answer=$1 else answer=$default fi } check_and_kill() { PID=`head -1 $1` kill -0 $PID > /dev/null 2>&1 [ $? -eq 0 ] && kill $PID } case "$1" in 'refresh') [ -f $SERVER_PID_FILE ] && kill -1 `head -1 $SERVER_PID_FILE` [ -f $CLIENT_PID_FILE ] && kill -1 `head -1 $CLIENT_PID_FILE` ;; 'start') if [ ! -f /usr/lib/sendmail -o ! -f /etc/mail/sendmail.cf ]; then exit $SMF_EXIT_ERR_CONFIG fi if [ ! -d /var/spool/mqueue ]; then /usr/bin/mkdir -m 0750 /var/spool/mqueue /usr/bin/chown root:bin /var/spool/mqueue fi if [ ! -f $ALIASES_FILE.db ] && [ ! -f $ALIASES_FILE.dir ] \ && [ ! -f $ALIASES_FILE.pag ]; then /usr/sbin/newaliases fi MODE="-bd" [ -f $DEFAULT_FILE ] && . $DEFAULT_FILE # # * MODE should be "-bd" or null (MODE= or MODE="") or # left alone. Anything else and you're on your own. # * QUEUEOPTION should be "p" or null (as above). # * [CLIENT]QUEUEINTERVAL should be set to some legal value; # sanity checks are done below. # * [CLIENT]OPTIONS are catch-alls; set with care. # if [ -n "$QUEUEOPTION" -a "$QUEUEOPTION" != "p" ]; then QUEUEOPTION="" fi if [ -z "$QUEUEOPTION" -o -n "$QUEUEINTERVAL" ]; then check_queue_interval_syntax $QUEUEINTERVAL QUEUEINTERVAL=$answer fi check_queue_interval_syntax $CLIENTQUEUEINTERVAL CLIENTQUEUEINTERVAL=$answer local=`/usr/bin/svcprop -p config/local_only $SMF_FMRI 2>/dev/null` if [ $? = 0 -a "$local" = "true" ]; then OPTIONS="$OPTIONS -C /etc/mail/local.cf" fi /usr/lib/sendmail $MODE -ODeliveryMode=queueonly -OQueueDirectory=/var/spool/mqueue.in -OPidFile=$SERVER_PID_FILE2 & /usr/lib/sendmail -q$QUEUEOPTION$QUEUEINTERVAL $OPTIONS & /usr/lib/sendmail -Ac -q$CLIENTQUEUEINTERVAL $CLIENTOPTIONS & # # ETRN_HOSTS should be of the form # "s1:c1.1,c1.2 s2:c2.1 s3:c3.1,c3.2,c3.3" # i.e., white-space separated groups of server:client where # client can be one or more comma-separated names; N.B. that # the :client part is optional; see etrn(1M) for details. # server is the name of the server to prod; a mail queue run # is requested for each client name. This is comparable to # running "/usr/lib/sendmail -qRclient" on the host server. # # See RFC 1985 for more information. # for i in $ETRN_HOSTS; do SERVER=`echo $i | /usr/bin/sed -e 's/:.*$//'` CLIENTS=`echo $i | /usr/bin/sed -n -e 's/,/ /g' \ -e '/:/s/^.*://p'` /usr/sbin/etrn -b $SERVER $CLIENTS >/dev/null 2>&1 & done if /usr/bin/nawk 'BEGIN{s = 1} $2 == "/var/mail" && $3 == "nfs" && $4 !~ /actimeo=0/ && $4 !~ /noac/{s = 0} END{exit s}' /etc/mnttab; then /usr/bin/logger -p mail.crit "$ERRMSG1" /usr/bin/logger -p mail.crit "$ERRMSG2" fi ;; 'stop') [ -f $SERVER_PID_FILE ] && check_and_kill $SERVER_PID_FILE if [ -f $CLIENT_PID_FILE ]; then check_and_kill $CLIENT_PID_FILE rm -f $CLIENT_PID_FILE fi # Need to kill the entire service contract to kill all sendmail related # processes smf_kill_contract $2 TERM 1 30 ret=$? [ $ret -eq 1 ] && exit 1 # Since sendmail spawns user processes out of .forward files, it is # possible that some of these are not responding to TERM. If the # contract did not empty after TERM, move on to KILL. if [ $ret -eq 2 ] ; then smf_kill_contract $2 KILL 1 fi ;; *) echo "Usage: $0 { start | stop | refresh }" exit 1 ;; esac exit 0 This message posted from opensolaris.org