Norman Maurer
Mon, 26 Oct 2009 01:29:12 -0700
How about adding it to the james wiki ;) wiki.apache.org/james Bye, Norman 2009/10/26 Rhys Black <pdamea...@gmail.com>: > Sexy looking code and step-by-step. I'm sure someone will find this of some > use at some point. > > ~Rhys > > david.moss wrote: >> >> Recently I asked the list if anyone had installed James on Solaris 10 >> under >> the SMF system. >> >> Getting no replies I set about doing it myself. I was successful. >> >> >> First I extracted the James files into /opt/james-2.3.2 and tested it with >> a >> manual start using >> >> /opt/james-2.3.2/bin/phoenix.sh start >> >> >> I found I had to set the JAVA_HOME variable somewhere for it to work. >> That's >> OK, I set this variable in the startup script. >> >> >> Next I created a file named /lib/svc/method/svc-james >> As follows: >> >> >> <***begin listing of svc-james> >> >> #!/sbin/sh >> >> >> # Thanks to Eric MacAdie for the basis of this script: >> >> # >> >> http://www.macadie.net/opencms/opencms/sites/MacAdie.dot.Net/Java/James/010. >> jamesStartupScript.html >> >> >> . /lib/svc/share/smf_include.sh >> >> >> # edit JAVA_HOME to reflect your own java environment >> >> JAVA_HOME=/usr/j2se >> >> export JAVA_HOME >> >> >> CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar >> >> >> case "$1" in >> >> 'start') >> >> /opt/james-2.3.2/bin/phoenix.sh start >> >> ;; >> >> 'stop') >> >> /opt/james-2.3.2/bin/phoenix.sh stop >> >> ;; >> >> 'restart') >> >> /opt/james-2.3.2/bin/phoenix.sh stop >> >> sleep 60 >> >> /opt/james-2.3.2/bin/phoenix.sh start >> >> ;; >> >> *) >> >> echo "Usage: $0 { start | stop | restart }" >> >> ;; >> >> esac >> >> exit 0 >> >> <***end listing of svc-james> >> >> >> I set permissions on this file as: >> >> -r-xr-xr-x >> >> to match the others in the directory. >> >> >> Next I created a file named /var/svc/manifest/network/james.xml >> As follows: >> >> >> <***begin listing james.xml> >> >> <?xml version='1.0'?> >> >> <!DOCTYPE service_bundle SYSTEM >> '/usr/share/lib/xml/dtd/service_bundle.dtd.1'> >> >> <!-- >> >> >> William Pool (Puddle) 02/05 >> >> Service manifest for MySQL >> >> E-mail: pud...@flipmotion.com >> >> --> >> >> >> <service_bundle type='manifest' name='james:james'> >> >> >> <service >> >> name='network/james' >> >> type='service' >> >> version='1'> >> >> <create_default_instance enabled='false' /> >> >> <single_instance /> >> >> >> >> <dependency name='fs' >> >> grouping='require_all' >> >> restart_on='none' >> >> type='service'> >> >> <service_fmri value='svc:/system/filesystem/local' /> >> >> </dependency> >> >> >> <dependency name='net' >> >> grouping='require_all' >> >> restart_on='none' >> >> type='service'> >> >> <service_fmri value='svc:/network/loopback' /> >> >> </dependency> >> >> >> <exec_method >> >> type='method' >> >> name='start' >> >> exec='/lib/svc/method/svc-james start' >> >> timeout_seconds='-1'> >> >> <method_context working_directory='/var/james'> >> >> <method_credential user='root' group='bin' /> >> >> </method_context> >> >> </exec_method> >> >> >> <exec_method >> >> type='method' >> >> name='stop' >> >> exec='/lib/svc/method/svc-james stop' >> >> timeout_seconds='-1'> >> >> <method_context working_directory='/var/james'> >> >> <method_credential user='root' group='bin' /> >> >> </method_context> >> >> </exec_method> >> >> >> <exec_method >> >> type='method' >> >> name='restart' >> >> exec='/lib/svc/method/svc-james restart' >> >> timeout_seconds='-1'> >> >> <method_context working_directory='/var/james'> >> >> <method_credential user='root' group='bin' /> >> >> </method_context> >> >> </exec_method> >> >> >> >> >> </service> >> >> >> </service_bundle> >> >> >> <***end listing james.xml> >> >> >> Next I created the directory /var/james >> >> to match the working directory in james.xml. It won't work without it. >> >> >> From within /var/svc/manifest/network/ >> I ran the command: >> >> svccfg validate ./james.xml >> >> >> Then I ran the command: >> >> svccfg import ./james.xml >> >> >> with the file successfully validated and imported I ran: >> >> svcadm enable james >> >> >> and tested with: >> >> telnet localhost 25 >> >> >> The mail server answered perfectly. >> >> >> I used: >> svcadm disable james >> >> and the mail server no longer answered using telnet. >> >> >> Finally I re-ran >> >> svcadm enable james >> >> and my James server now starts automatically at boot time and will self >> heal >> if anything goes wrong during runtime. >> >> >> Hopefully others will find this useful. >> >> >> David Moss >> >> >> >> >> >> >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: server-user-unsubscr...@james.apache.org > For additional commands, e-mail: server-user-h...@james.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: server-user-unsubscr...@james.apache.org For additional commands, e-mail: server-user-h...@james.apache.org