[erlang-questions] Erlang and Solaris SMF's

Scott Lystig Fritchie <>
Tue Jul 10 21:57:09 CEST 2012


Heinz, I don't know if you got any answers from the OpenIndiana mailing
list ... I haven't seen any here on the erlang-questions list.

I don't have a good answer for you, other than to give an example SMF
config file for Riak.  The full text (below) comes from
https://raw.github.com/gist/6d76de3af5eba57134d2/cdc659038ac75bc646bdae0ad839271ad6477ff1/manifest.xml
-- many thanks to Jared Morrow!

Note that we are big fans of the features of libumem.  Also, explicit
management of "epmd" appears to be missing, which suggests that it isn't
necessary?  {shrug} This is the manifest that is being used, as far as I
know, right now by Riak deployments using SmartOS at Joyent's hosting
service.

-Scott

--- snip --- snip --- snip --- snip --- snip --- snip --- 

?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
<service_bundle type="manifest" name="riak">
  <service name="application/riak" type="service" version="1">
    <create_default_instance enabled="false" />
    <single_instance />
    <dependency name="network" grouping="require_all" restart_on="error" type="service">
      <service_fmri value="svc:/milestone/network:default" />
    </dependency>
    <dependency name="filesystem" grouping="require_all" restart_on="error" type="service">
      <service_fmri value="svc:/system/filesystem/local" />
    </dependency>
    <method_context working_directory="/tmp" project="riak">
      <method_credential user="@SMF_USER@" group="@SMF_GROUP@" />
      <method_environment>
        <envvar name="HOME" value="@SMF_HOME@" />
        <envvar name="LOGNAME" value="@SMF_USER@" />
        <envvar name="PATH" value="/usr/bin:/bin:/opt/local/bin:/opt/local/sbin" />
        <envvar name="LD_PRELOAD_32" value="/lib/libumem.so.1" />
        <envvar name="LD_PRELOAD_64" value="/lib/64/libumem.so.1" />
        <envvar name="UMEM_OPTIONS" value="allocator=best" />
      </method_environment>
    </method_context>
    <exec_method type="method" name="start" exec="@PREFIX@/sbin/riak start" timeout_seconds="60" />
    <exec_method type="method" name="stop" exec="@PREFIX@/sbin/riak stop" timeout_seconds="60" />
    <property_group name="startd" type="framework">
      <propval name="duration" type="astring" value="contract" />
      <propval name="ignore_error" type="astring" value="core,signal" />
    </property_group>
    <stability value="Evolving" />
    <template>
      <common_name>
        <loctext xml:lang="C">Riak Data Store</loctext>
      </common_name>
    </template>
  </service>
</service_bundle>



More information about the erlang-questions mailing list