Observing system startup - Metadata quo vadis?
This is not really about NetBSD, but a rant on what the world is
becoming to.
I was looking at various "modern"
system startup mechanisms and -replacements, and came across
Apple and Sun's FAM which (though different in detail) do not only
add metadata in addition to boot scripts, but also use it to manage
services that were handled "on demand" by inetd before.
Now, here's what NetBSD (to be on-topic) has in /etc/inetd.conf
to run rshd(8) when a service request comes in:
shell stream tcp nowait root /usr/libexec/rshd rshd -L
That's one line.
I never looked at xinetd, but apparently it was used by Apple
before MacOS X 10.4, describing the same thing in another format:
service shell
{
disable = yes
socket_type = stream
wait = no
user = root
server = /usr/libexec/rshd
groups = yes
flags = REUSE
}
Same data, different format. Not a big deal, but IMHO it's more
difficult to keep an overview, as you usually have more than one
such service.
Now here's what Apple's "launchd" takes for the same thing:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.
com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<true/>
<key>Label</key>
<string>com.apple.rshd</string>
<key>ProgramArguments</key>
<array>
<string>/usr/libexec/rshd</string>
</array>
<key>inetdCompatibility</key>
<dict>
<key>Wait</key>
<false/>
</dict>
<key>InitGroups</key>
<true/>
<key>Sockets</key>
<dict>
<key>Listeners</key>
<dict>
<key>SockServiceName</key>
<string>shell</string>
</dict>
</dict>
</dict>
</plist>
Of course this is all in the name of (machine) readability,
because the classic inetd.conf format is harder to read for
machines.
One extra bonus to Sun (which also put the startup item metadata
into XML files): They don't keep the various services' data in
files in a directory as Apple seems to do, but to install a
service, you read it into a SQL (SQLite, actually) database,
which is then used upon system boot.
Seems the times of readable(!) ASCII config files are ending.
While thinking for a long time that Solaris is one of the better
things since sliced bread, their new start up system in Solaris 10
made me turn away.
--
References:
"Getting started with launchd",
Solaris' svc.startd(8) and smf(5).
[Tags: hubertf, rants, rc.d]
|