|
Download Kannel from freeware.com:
# wget ftp://ftp.sunfreeware.com/pub/freeware/sparc/10/gateway-1.4.1-sol10-sparc-local.gz
Install:
# pkgadd -d gateway-1.4.1-sol10-sparc-local.gz
Create configuration (edit it according to your preference):
# cp /usr/local/doc/gateway/solaris/etc/kannel.conf /etc/
Create XML for SMF:
# vi /var/svc/manifest/network/kannel.xml
<?xml version="1.0"?> <!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1"> <!-- Copyright 2007 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.
#ident "@(#)kannel.xml 1.1 07/05/23 SMI"
-->
<service_bundle type='manifest' name='SUNWkannel:gateway'>
<service name='network/kannel' type='service' version='1'>
<create_default_instance enabled='false' />
<single_instance/>
<dependency name='net-loopback' grouping='require_any' restart_on='none' type='service'> <service_fmri value='svc:/network/loopback' /> </dependency>
<dependency name='net-service' grouping='require_all' restart_on='none' type='service'> <service_fmri value='svc:/network/service'/> </dependency>
<dependency name='net-physical' grouping='require_all' restart_on='none' type='service'> <service_fmri value='svc:/network/physical' /> </dependency>
<dependency name='filesystem-local' grouping='require_all' restart_on='none' type='service'> restart_on='none' type='service'> <service_fmri value='svc:/system/filesystem/local' /> </dependency>
<exec_method type='method' name='start' exec='/lib/svc/method/kannel start' timeout_seconds='170' />
<exec_method type='method' name='stop' exec='/lib/svc/method/kannel stop' timeout_seconds='60' />
<stability value='Unstable' />
</service>
</service_bundle>
Create the Kannel control script:
# vi /lib/svc/method/kannel
#!/bin/sh
STARTs="--daemonize -p /var/run/kannel-sms.pid" STARTb="--daemonize -p /var/run/kannel-bearer.pid" CONF=/etc/kannel.conf bearerbox=/usr/local/sbin/bearerbox smsbox=/usr/local/sbin/smsbox
# Checking ... [ -x $bearerbox ] || exit 0 [ -x $smsbox ] || exit 0 [ -f $CONF ] || exit 0
RETVAL=0
# See how we were called. case "$1" in start) # Start daemons. echo "Starting bearerbox " $bearerbox $STARTb $CONF RETVAL1=$? echo sleep 3 echo "Starting smsbox " $smsbox $STARTs $CONF RETVAL2=$? echo [ $RETVAL1 -eq 0 -a $RETVAL2 -eq 0 ] && touch /var/lock/subsys/gateway ||\ RETVAL=1 ;; stop) stop) # Stop daemons. echo "Shutting down smsbox " smspid=`cat /var/run/kannel-sms.pid` kill $smspid RETVAL2=$? echo echo "Shutting down bearerbox " bearpid=`cat /var/run/kannel-bearer.pid` kill -9 $bearpid rm /var/run/** RETVAL1=$? echo [ $RETVAL1 -eq 0 -a $RETVAL2 -eq 0 ] && rm -f /var/lock/subsys/gateway echo "" ;; status) status $bearerbox status $smsbox exit $? ;; restart) $0 stop sleep 2 $0 start ;; *) echo "Usage: kannel {start|stop|status|restart}" exit 1 esac
exit $RETVAL
Validate your XML document:
# xmllint --valid /var/svc/manifest/network/kannel.xml # svccfg validate /var/svc/manifest/network/kannel.xml
Import it to SMF:
# svccfg import /var/svc/manifest/network/kannel.xml
Verify in SMF. It should be now visible under SMF:
# svcs ServiceName STATE STIME FMRI offline 14:26:06 svc:/network/kannel:default
Enable the service:
# svcadm enable kannel
|