To celebrate the installation of the new version of netatalk on my OpenIndiana home server (Standard netatalk source: ./configure --disable-ddp --without-ldap && make && pfexec make install), I created a SMF configuration, so that the OpenIndina svc system can manage netatalk.

Without further ado:

<?xml version='1.0'?>
<!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
<service_bundle type='manifest' name='export'>
<service name='network/netatalk' type='service' version='0'>
<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'>
<service_fmri value='svc:/system/filesystem/local'/>
</dependency>
<dependent name='netatalk_multi-user-server' restart_on='none' grouping='optional_all'>
<service_fmri value='svc:/milestone/multi-user-server'/>
</dependent>
<instance name='default' enabled='true'>
<dependency name='config_data' grouping='require_all' restart_on='none' type='path'>
<service_fmri value='file://localhost/usr/local/etc/netatalk/AppleVolumes.default'/>
</dependency>
<exec_method name='start' type='method' exec='/etc/init.d/netatalk start' timeout_seconds='170'>
<method_context/>
</exec_method>
<exec_method name='stop' type='method' exec='/etc/init.d/netatalk stop' timeout_seconds='60'>
<method_context/>
</exec_method>
<template>
<common_name>
<loctext xml:lang='C'>netatalk Apple File Protocal Fileserver</loctext>
</common_name>
<documentation>
<manpage title='afpd' section='8' manpath='/usr/local/share/man'/>
<manpage title='AppleVolumes.defaul' section='5' manpath='/usr/local/share/man'/>
</documentation>
</template>
</instance>
<stability value='Unstable'/>
</service>
</service_bundle>

just save it as netatalk.xml and import it, by typing in:

# svccfg import netatalk.xml

In the future, you can enable and disable netatalk with svcadm.
You can delete /etc/rc2.d/S90netatalk

$ svcs -l netatalk
fmri svc:/network/netatalk:default
name netatalk Apple File Protocal Fileserver
enabled true
state online
next_state none
state_time 12. Oktober 2011, 19:46:37 Uhr CEST
logfile /var/svc/log/network-netatalk:default.log
restarter svc:/system/svc/restarter:default
contract_id 217
dependency require_all/none file://localhost/usr/local/etc/netatalk
/AppleVolumes.default (online)
dependency require_any/none svc:/network/loopback (online)
dependency require_all/none svc:/network/service (online)
dependency require_all/none svc:/network/physical (multiple)
dependency require_all/none svc:/system/filesystem/local (online)