Armadillo Documentation

for version 1.0 (02/03/2005)


What is Armadillo?

Armadillo is a Mac OS X application which facilitates the creation of Mac OS X Startup Items.


What are Startup Items?

Startup Items are folders with a special directory structure that contains (at the very least) an executable script and an XML property list which contains information about when to execute the script in the operating system's boot process. Startup Items are executed at boot time by a program called SystemStarter.

For specific information about the format of Startup Items, you should consult the following pages in Apple's Developer Documentation:

ADC: Creating Startup Items
ADC: Managing Startup Items
ADC: The Boot Process - Startup Items

For more information about how SystemStarter works, you should read the SystemStarter manpage (open Terminal and type "man SystemStarter"). However, you probably won't have to read all this to create a Startup Item with Armadillo. All you need is a reasonable familiarity with shell scripting.


How do I use Armadillo?

Armadillo is a fairly straightforward application. Once you launch the application, you should see a window like this one:

I'm going to explain each of the settings and controls in turn:

Name
This is the name of your Startup Item. Both your Startup Item directory and the script within it will eventually bear this name. Also, this is the name of the service your Startup Item will be recognized as providing by SystemStarter.

Description
The description string should be a human-readable name for your Startup Item.

Order Preference
The order preference for your item can be First, Early, None, Late or Last. This provides SystemStarter with information about what stage of the boot process is desirable for loading your Startup Item. This value should not be relied on, however, as SystemStarter may ignore it.

Requires
You can edit a list of other Startup Items your particular Startup Item absolutely requires to function. You specify these items by name. These can be other Startup Items of your creation or, more likely, some of the Startup Items which are an inherent part of Mac OS X. For a list of Apple's items, see the list at the bottom of this document.

Uses
You can edit a list of other Startup Items your particular Startup Item uses but are not essential to its functionality. You specify these items by name. These can be other Startup Items of your creation or some of the Startup Items which are an inherent part of Mac OS X. For a list of Apple's items, see the list at the bottom of this document.

Bundled files
If your script requires external files as resources, you may possibly want to bundle them with your Startup Item. You can edit a list of files to bundle with the item.

Startup Script
This is an editable text field for your startup script. In most cases, you will only need to add some lines of your own. Several functions are defined, namely StartService, StopService and RestartService. Not all of these functions must neccesarily be implemented. However, if your Startup Item is to actually do something, you will probably want to flesh out the StartService function with some commands of your own. A rudimentary knowledge of shell scripting is required for this.

Create and Install
This button will create a Startup Item from your settings in Armadillo and install it in /Library/StartupItems, the place where third-party Startup Items are generally placed. Apple's own Startup Items are located in /System/Library/StartupItems.

Create
This button will create a Startup Item from your settings in Armadillo in a location you specify. The Startup Item can subsequently be installed manually or added to an installer package..


Other Features

Armadillo sports few extra features:

Import Script
You can import a script from some other file to load into the Startup Scrip text field.

Restore Default Script
This will restore the default startup script which Armadillo loads when launched.

Check Script Syntax
This function will check the syntax of your script and report errors. This function is only useful for shell scripts, since the script is piped through sh -n.


Apple's Startup Items

A list of Apple's Mac OS X items follows. You can use the names on this list to specify what Startup Items your own Startup Item uses or requires.

Startup item

Description

SecurityServer

Starts the security server, which oversees system authorization, authentication, and keychain access.

CoreGraphics

Starts the ATS Server.

Disks

Starts the autodiskmount daemon, checks and mounts local disks.

Accounting

Starts up the accounting system (accton), which writes accounting information for each launched process to /var/account/acct.

Network

Sets up options for using IPv6 and IP forwarding as appropriate.

NetworkExtensions

Loads several network-related kernel extensions.

BIND

Starts up the local DNS-server.

mDNSResponder

Starts up the multicast-DNS responder, which supports Rendezvous, Apple’s implementation of zero-configuration networking.

Portmap

Starts up the portmap daemon.

CrashReporter

If crash reporting is enabled, starts daemons to gather crash report data.

LDAP

Starts the LDAP service.

NetInfo

Starts the NetInfo servers (netinfod and nibindd).

NIS

Starts the Network Information Services.

NetworkTime

Starts up network time services, which uses the Network Time Protocol (NTP).

LoginWindow

Signals that the system has the services it needs to start the loginwindow application. The init process launches the application while SystemStarter continues loading startup items in the background.

NFS

Starts the Network File System service that performs asynchronous block I/O (nfsiod), mounts remote file systems, starts the automounter, and, if the NetInfo database indicates that the computer should export a file system using NFS, starts the NFS server.

AuthServer

Starts the authentication server.

AppServices

Initializes Launch Services.

Postfix

Launches the SMTP mail server.

PrintingServices

Starts the CUPS printing services daemon (cupsd).

IPServices

Starts TCP/IP services (xinetd).

AppleShare

If a network connection is detected, starts the AppleShare service.

Apache

If web sharing is enabled, runs the Apache HTTP server httpd.

Cron

Runs the cron daemon.


© 2005 Sveinbjorn Thordarson