[erlang-questions] Erlang/OTP Embedded Systems in Solaris 10

Vance Shipley vances@REDACTED
Tue Aug 7 01:14:39 CEST 2007

For many years now I have been following the Embedded Systems
User's Guide for installing Erlang/OTP on servers which will
run applications in a production environment.  I have refined
the procedures documented there over the years but in general
I follow the recommendations with an "otpuser" account with
the "otp" group and installing in that user's home directory.  

I have over the years rewriten the S75otp.system rc script
but it still calls the start script provided by OTP.  I have
added a stop script and made other subtle improvements.

The Embedded Systems User's Guide hasn't changed in all that
time.  This can be seen in this statement:

   "Several of the procedures described below require expert
    knowledge of the Solaris 2 operating system."

Since everything I am doing these days is on Solaris 10 I have
reached the point where I want to make some fundamental changes.
Solaris 10 has introduced the Service Management Facility (SMF)
which replaces init with advanced functionality for managing
services as collections of processes with dependencies and 
making sure they keep running.  While SMF has replaced init it
does support legacy rc scripts however without the extended

I have started to build the service bundles which are XML files
describing the dependencies, start up methods, etc.  This
could be simple enough but I started to wonder about things 
like whether I should start epmd from SMF and should I assume
the role of the OTP start script and possible run_erl.

I'd like to ask for any experiences or suggestions before I 
go too far.  Ultimately I would like to see a new version of
the Embedded Systems User's Guide for Solaris.  I'll be happy
to write it if I have support for it.

For a while now I have also been packaging new Erlang/OTP releases
into Solaris packages which can be installed with pkgadd(1M) to
create running embedded systems.  I was planning to document
this as well, possibly in a trapexit howto.


More information about the erlang-questions mailing list