-
Notifications
You must be signed in to change notification settings - Fork 17
##How Outset Works
Outset is controlled by four launchd plists:
/Library/LaunchDaemons/com.github.outset.boot.plist
/Library/LaunchDaemons/com.github.outset.cleanup.plist
/Library/LaunchAgents/com.github.outset.login.plist
/Library/LaunchAgents/com.github.outset.on-demand.plist
###What Happens During Boot?
The boot
LaunchDaemon processes packages, profiles, and scripts during the boot sequence, and will either run once, or at every subsequent boot, depending on the directory in which the files are placed:
/usr/local/outset/boot-once/
/usr/local/outset/boot-every/
When the Mac boots, launchd will run /usr/local/outset/outset --boot
which does the following:
- Verifies that all working directories exist, and creates them if not.
- If the
network_wait
setting is set to True (which is the default setting):- disables the loginwindow process
- waits until the Mac has a valid IP address
- Processes and deletes everything in
/usr/local/outset/boot-once/
- Loads the loginwindow.
- Processes everything in
/usr/local/outset/boot-every/
- Creates the Outset preference file does not exist in
/usr/local/outset/share/
if it does not exist.
###What Happens During Login?
The login
LaunchAgent runs any scripts or profiles during user login, and will run either once, or at every subsequent login, depending on the directory in which the files are placed:
/usr/local/outset/login-once/
/usr/local/outset/login-every/
When the user logs in, launchd will run /usr/local/outset/outset --login
which does the following:
- If the user is not in the
ignored_users
array:- Processes everything in
/usr/local/outset/login-once/
- Logs the names of all login-once items to
~/Library/Preferences/com.github.outset.once.plist
- Processes everything in
/usr/local/outset/login-every/
- Processes everything in
###What Happens During On Demand Jobs?
The on-demand
LaunchAgent and cleanup
LaunchDaemon, respectively, process and remove scripts or profiles from the following directory immediately, in the user context, for any currently logged in user (for those using Fast User Switching, it will only run in the current GUI session, and will not run in any background sessions):
/usr/local/outset/on-demand/
When on-demand is initiated, launchd will run /usr/local/outset/outset --on-demand
, which does the following in the current user session only:
- Processes everything in
/usr/local/outset/on-demand/
- Deletes everything in
/usr/local/outset/on-demand/