Opinions on SMF

joris dedieu joris.dedieu at gmail.com
Tue Sep 10 04:54:46 PDT 2013

2013/9/10 Petr Janda <elekktretterr at exemail.com.au>:
>> So sure rcNG looses some process, does not understand parallel jobs,
>> spend time to fork, sleep, grep and so on, but it provides shell
>> conventions and tools to write proper startup scripts in any
>> situations and avoid the need to reinvent the wheel each time you have
>> a non standard case. It's not an ideal solution, but it has the main
>> feature - expressiveness -  and SMF not.
>> An other time sorry if you had feel me flaming. Hop my post should help.
> Have a look at the manifests, vast majority of them don't need shell
> scripting.

I disagree this point.
Here a basic OpenIndiana distribution (SunOS blandine1 5.11 oi_151a7
i86pc i386 i86pc Solaris) :

- 172 manifests in /lib/svc/manifest
- for 104 start_method is exec='/lib/svc/method/something
- all somethings in /lib/svc/method/ are shell scripts (using randomly
/bin/sh /sbin/sh /usr/bin/sh /bin/ksh /bin/ksh93 and /usr/bin/ksh -p)
- 59 entries online on 98 are using shell scripts to start

online         Feb_04   svc:/application/font/fc-cache:default
online         Feb_04   svc:/application/print/service-selector:default
online         Feb_04   svc:/application/opengl/ogl-select:default
online         Feb_04   svc:/network/initial:default
online         Feb_04   svc:/network/npiv_config:default
online         Feb_04   svc:/network/ip-interface-management:default
online         Feb_04   svc:/network/service:default
online         Feb_04   svc:/network/iscsi/initiator:default
online         Feb_04   svc:/network/ssh:default
online         Feb_04   svc:/network/datalink-management:default
online         Feb_04   svc:/network/netmask:default
online         Feb_04   svc:/network/physical:default
online         Feb_04   svc:/network/sendmail-client:default
online         Feb_04   svc:/network/iptun:default
online         Feb_04   svc:/network/ntp:default
online         Feb_04   svc:/network/routing-setup:default
online         Feb_04   svc:/network/smtp:sendmail
online         Feb_04   svc:/network/routing/ndp:default
online         Feb_04   svc:/network/rpc/bind:default
online         Feb_04   svc:/network/loopback:default
online         Feb_04   svc:/system/scheduler:default
online         Feb_04   svc:/system/sysevent:default
online         Feb_04   svc:/system/rbac:default
online         Feb_04   svc:/system/filesystem/minimal:default
online         Feb_04   svc:/system/filesystem/usr:default
online         Feb_04   svc:/system/filesystem/root:default
online         Feb_04   svc:/system/filesystem/autofs:default
online         Feb_04   svc:/system/filesystem/local:default
online         Feb_04   svc:/system/filesystem/rmvolmgr:default
online         Feb_04   svc:/system/hostid:default
online         Feb_04   svc:/system/identity:node
online         Feb_04   svc:/system/identity:domain
online         Feb_04   svc:/system/boot-archive:default
online         Feb_04   svc:/system/boot-config:default
online         Feb_04   svc:/system/hal:default
online         Feb_04   svc:/system/resource-mgmt:default
online         Feb_04   svc:/system/rmtmpfiles:default
online         Feb_04   svc:/system/auditset:default
online         Feb_04   svc:/system/logadm-upgrade:default
online         Feb_04   svc:/system/dumpadm:default
online         Feb_04   svc:/system/power:default
online         Feb_04   svc:/system/device/local:default
online         Feb_04   svc:/milestone/devices:default
online         Feb_04   svc:/system/device/audio:default
online         Feb_04   svc:/system/device/fc-fabric:default
online         Feb_04   svc:/system/manifest-import:default
online         Feb_04   svc:/system/metainit:default
online         Feb_04   svc:/system/utmp:default
online         Feb_04   svc:/system/intrd:default
online         Feb_04   svc:/system/console-login:default
online         Feb_04   svc:/system/zones-monitoring:default
online         Feb_04   svc:/system/fcoe_initiator:default
online         Feb_04   svc:/system/system-log:default
online         Feb_04   svc:/system/name-service-cache:default
online         Feb_04   svc:/system/keymap:default
online         Feb_04   svc:/system/boot-archive-update:default
online         Feb_04   svc:/system/zones:default
online         Feb_04   svc:/system/metasync:default
online         Feb_04   svc:/system/cron:default

> In fact I find majority of the manifests self explanatory.
> Because SMF builds a full dependency graph, using the commands it's easy
> to see what depends on what.
> If an application/service in the middle of the dependency tree stops
> working, it has to be able to control every other app that depends on it.
> Like John said, the most important thing is service management. SMF does
> it well.
> As for launchd, just because it's loosely related to BSD, doesn't make
> it good. Imho, as open source developers, we should focus on what works
> best, instead of the politics of different licenses.
> --
> Please use PGP to encrypt your email to ensure our privacy is respected.

More information about the Users mailing list