-
Notifications
You must be signed in to change notification settings - Fork 13
Home
##Introduction to Outset
Outset is a script which automatically processes packages, profiles, and scripts during the boot sequence, user logins, or on demand.
###Requirements
- python 2.7+
- It's only been tested on 10.9.x and above
###Overview
Outset is meant to be triggered by launchd so there is no interactive mode as such. The --boot
mode is triggered by a LaunchDaemon and therefore will be run as root. The --login
mode is triggered by a LaunchAgent, so it is running in the context of the user logging in.
For testing purposes, one could manually invoke the command:
sudo /usr/local/bin/outset/outset --boot
/usr/local/bin/outset/outset --login
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
The boot
LaunchDaemon runs 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/
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/
The on-demand
LaunchAgent and cleanup
LaunchDaemon process and then 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/
(Note: on-demand
scripts will be immediately removed and thus will not run during subsequent logins)
####Logging Outset logs to standard out and to two different log files, depending on the context in which the script is being run (root or user):
/var/log/outset.log
~/Library/Logs/outset.log