<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.datagirl.xyz/w/index.php?action=history&amp;feed=atom&amp;title=SMF_on_illumos</id>
	<title>SMF on illumos - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.datagirl.xyz/w/index.php?action=history&amp;feed=atom&amp;title=SMF_on_illumos"/>
	<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=SMF_on_illumos&amp;action=history"/>
	<updated>2026-06-02T21:17:27Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=SMF_on_illumos&amp;diff=203&amp;oldid=prev</id>
		<title>Flurry: mention how you import this</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=SMF_on_illumos&amp;diff=203&amp;oldid=prev"/>
		<updated>2023-02-19T23:22:10Z</updated>

		<summary type="html">&lt;p&gt;mention how you import this&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:22, 19 February 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l97&quot;&gt;Line 97:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 97:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/service_bundle&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/service_bundle&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Okay, but how do I use this? ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;That's the easy part! As root:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;syntaxhighlight lang=&quot;text&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# svccfg import your-manifest.xml&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/syntaxhighlight&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;You can now use it like every other service on your system. Use &amp;lt;code&gt;svcs my_service&amp;lt;/code&gt; to see its status, &amp;lt;code&gt;svcadm (enable|disable|refresh|restart) my_service&amp;lt;/code&gt; to do all of those relevant things, etc etc.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key dg_wiki:diff::1.12:old-202:rev-203 --&gt;
&lt;/table&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=SMF_on_illumos&amp;diff=202&amp;oldid=prev</id>
		<title>Flurry: Created page with &quot;Maybe I just suck at finding docs, but SMF feels like a bit of a mess. It seems like Solaris users get [https://docs.oracle.com/cd/E36784_01/html/E36871/svcbundle-1m.html#REFMAN1Msvcbundle-1m some nice tools] for creating manifests, but I'm guessing that's post-illumos fork. Refer to [https://www.oracle.com/technetwork/server-storage/solaris10/solaris-smf-manifest-wp-167902.pdf this PDF] for more in-depth info.  This assumes you're using [https://illumos.org/man/8/svc.st...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=SMF_on_illumos&amp;diff=202&amp;oldid=prev"/>
		<updated>2023-02-19T23:07:58Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Maybe I just suck at finding docs, but SMF feels like a bit of a mess. It seems like Solaris users get [https://docs.oracle.com/cd/E36784_01/html/E36871/svcbundle-1m.html#REFMAN1Msvcbundle-1m some nice tools] for creating manifests, but I&amp;#039;m guessing that&amp;#039;s post-illumos fork. Refer to [https://www.oracle.com/technetwork/server-storage/solaris10/solaris-smf-manifest-wp-167902.pdf this PDF] for more in-depth info.  This assumes you&amp;#039;re using [https://illumos.org/man/8/svc.st...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Maybe I just suck at finding docs, but SMF feels like a bit of a mess. It seems like Solaris users get [https://docs.oracle.com/cd/E36784_01/html/E36871/svcbundle-1m.html#REFMAN1Msvcbundle-1m some nice tools] for creating manifests, but I'm guessing that's post-illumos fork. Refer to [https://www.oracle.com/technetwork/server-storage/solaris10/solaris-smf-manifest-wp-167902.pdf this PDF] for more in-depth info.&lt;br /&gt;
&lt;br /&gt;
This assumes you're using [https://illumos.org/man/8/svc.startd svc.startd(8)] as your &amp;quot;restarter&amp;quot;, which mainly affects the &amp;lt;code&amp;gt;exec_method&amp;lt;/code&amp;gt; elements (AIUI). If you (like me) don't know what that means, this is likely the case.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE service_bundle SYSTEM &amp;quot;/usr/share/lib/xml/dtd/service_bundle.dtd.1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- name seems to be arbitrary. best to set it to the service name --&amp;gt;&lt;br /&gt;
&amp;lt;service_bundle type=&amp;quot;manifest&amp;quot; name=&amp;quot;service_name&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;!--&lt;br /&gt;
    name is how you'll refer to the service in svcs/svcadm. I typically&lt;br /&gt;
    use &amp;quot;application/&amp;lt;service_name&amp;gt;&amp;quot;, no idea if that's idiomatic or not.&lt;br /&gt;
&lt;br /&gt;
    version must be an integer.&lt;br /&gt;
    --&amp;gt;&lt;br /&gt;
  &amp;lt;service name=&amp;quot;scarlet/my_service&amp;quot; type=&amp;quot;service&amp;quot; version=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- this sample service should only ever have one instance --&amp;gt;&lt;br /&gt;
    &amp;lt;single_instance /&amp;gt;&lt;br /&gt;
    &amp;lt;!--&lt;br /&gt;
      if you want multiple instances, don't use that tag. instead, use:&lt;br /&gt;
      &amp;lt;create_default_instance enabled=&amp;quot;(true|false)&amp;quot; /&amp;gt;&lt;br /&gt;
      depending on whether you want application/my_service:default to exist.&lt;br /&gt;
      --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!--&lt;br /&gt;
      say this service relies on networking and fs to function. if the&lt;br /&gt;
      relevant SMF services get refreshed (reconfigured) or restarted,&lt;br /&gt;
      we need to restart too. so we'll use restart_on='refresh' ('restart' is&lt;br /&gt;
      implied) and since we need all the services, grouping='require_all'.&lt;br /&gt;
      --&amp;gt;&lt;br /&gt;
    &amp;lt;!-- TODO: the DTD seems to imply multiple service_fmri tags work, but&lt;br /&gt;
         nobody seems to do this. is this ok? works fine for me so far --&amp;gt;&lt;br /&gt;
    &amp;lt;dependency name=&amp;quot;net_fs&amp;quot; grouping=&amp;quot;require_all&amp;quot; restart_on=&amp;quot;refresh&amp;quot; type=&amp;quot;service&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;service_fmri value=&amp;quot;svc:/milestone/network:default&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;service_fmri value=&amp;quot;svc:/system/filesystem/local&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/dependency&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- You can also depend on stuff like files existing! --&amp;gt;&lt;br /&gt;
    &amp;lt;dependency name=&amp;quot;config_file&amp;quot; grouping=&amp;quot;require_all&amp;quot; restart_on=&amp;quot;refresh&amp;quot; type=&amp;quot;path&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;service_fmri value=&amp;quot;file://localhost/etc/serviced.conf&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/dependency&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- name should be 'start', 'refresh' (reconfigure), or 'stop'. --&amp;gt;&lt;br /&gt;
    &amp;lt;exec_method type=&amp;quot;method&amp;quot;&lt;br /&gt;
        name=&amp;quot;start&amp;quot;&lt;br /&gt;
        exec=&amp;quot;/opt/local/bin/serviced --with-args &amp;quot;stuff&amp;quot;&amp;quot;&lt;br /&gt;
        timeout_seconds=&amp;quot;60&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;method_context&amp;gt;&lt;br /&gt;
        &amp;lt;!-- you can add other groups with supp_groups (comma/space delim) --&amp;gt;&lt;br /&gt;
        &amp;lt;method_credential user='svcuser' group='svcgrp' /&amp;gt;&lt;br /&gt;
        &amp;lt;method_environment&amp;gt;&lt;br /&gt;
          &amp;lt;envvar name=&amp;quot;HOME&amp;quot; value=&amp;quot;/var/lib/service&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/method_environment&amp;gt;&lt;br /&gt;
      &amp;lt;/method_context&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;!--&lt;br /&gt;
        not sure where it's documented, but ':kill' works to just kill&lt;br /&gt;
        the service PID.&lt;br /&gt;
        --&amp;gt;&lt;br /&gt;
      &amp;lt;exec_method type=&amp;quot;method&amp;quot;&lt;br /&gt;
          name=&amp;quot;stop&amp;quot;&lt;br /&gt;
          exec=&amp;quot;:kill&amp;quot;&lt;br /&gt;
          timeout_methods=&amp;quot;60&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;!-- svc.startd specific options --&amp;gt;&lt;br /&gt;
      &amp;lt;property_group name=&amp;quot;startd&amp;quot; type=&amp;quot;framework&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- &lt;br /&gt;
          startd durations:&lt;br /&gt;
          - 'child': long-running foreground process&lt;br /&gt;
          - 'contract': &amp;quot;daemonizing&amp;quot; process (uses fork)&lt;br /&gt;
          - 'transient': similar to systemd's 'oneshot'&lt;br /&gt;
          --&amp;gt;&lt;br /&gt;
        &amp;lt;propval name=&amp;quot;duration&amp;quot; type=&amp;quot;astring&amp;quot; value=&amp;quot;child&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;!-- don't restart on some errors --&amp;gt;&lt;br /&gt;
        &amp;lt;propval name=&amp;quot;ignore_error&amp;quot; type=&amp;quot;astring&amp;quot; value=&amp;quot;core,signal&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;!-- &lt;br /&gt;
          if you need a separate session for the service:&lt;br /&gt;
            &amp;lt;propval name=&amp;quot;need_session&amp;quot; type=&amp;quot;boolean&amp;quot; value=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
          &lt;br /&gt;
          there's also utmpx_prefix, but unless your service is *very*&lt;br /&gt;
          unix-y, you probably don't need this.&lt;br /&gt;
          --&amp;gt;&lt;br /&gt;
      &amp;lt;/property_group&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;template&amp;gt;&lt;br /&gt;
        &amp;lt;!-- locale-specific names for your service --&amp;gt;&lt;br /&gt;
        &amp;lt;common_name&amp;gt;&lt;br /&gt;
          &amp;lt;loctext xml:lang=&amp;quot;C&amp;quot;&amp;gt;Sample Service Daemon&amp;lt;/loctext&amp;gt;&lt;br /&gt;
        &amp;lt;/common_name&amp;gt;&lt;br /&gt;
        &amp;lt;!-- optional: link some docs --&amp;gt;&lt;br /&gt;
        &amp;lt;documentation&amp;gt;&lt;br /&gt;
          &amp;lt;manpage title=&amp;quot;serviced&amp;quot; section=&amp;quot;8&amp;quot; manpath=&amp;quot;/opt/local/share/man&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;doc_link name=&amp;quot;docs-home&amp;quot; uri=&amp;quot;https://example.com/docs/&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/documentation&amp;gt;&lt;br /&gt;
      &amp;lt;/template&amp;gt;&lt;br /&gt;
  &amp;lt;/service&amp;gt;&lt;br /&gt;
&amp;lt;/service_bundle&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
</feed>