- Warn about too large values in ExitTimeOut, StartInterval, ThrottleInterval and TimeOut
- Problem entering values greater 9999 for ExitTimeOut, StartInterval, ThrottleInterval and TimeOut with specific locale settings
- It is now possible to generate values for StartCalenderInterval by evaluating a cron-style time specification
- Enabling/disabling a job would only stick if the job definition was explicitly saved; This bug was introduced in version 1.13.1 (Thanks, Arie!)
- Crash when clicking "Save" after switching from a modified job definition to a new one (Thanks, Arie!)
- StartCalendarInterval/Month is not zero-based (Thanks, Jeff!)
- Random crash when switching between job definitions (Thanks again, Jeff!)
- Verify keys of dictionary values case insensitive to avoid false warnings about use of undocumented keys
- Problem with selection/insertion point position in Program/ProgramArguments editor (Thanks Chris!)
- Remember "Show Tooltips" state across restarts.
- Added keyboard shortcuts to switch between job categories. See menu View>Goto.
- Improved performance. Scanning/validating 250 job definitions now takes about 1 second on a late 2011 17" MBP (compared to ~6 seconds in v1.13).
- Optimized drawing code for improved responsiveness.
- Saving a job definition will always replace any occurrence of "#Label#' with the current job label. Previously this would only happen right after creating an instance from a template.
- Disable save button in template save dialog when template name is empty.
- QuickLaunch: This feature adds a small menu extra to your menu bar containing selected jobs and their respective status. It also allows for ad-hoc starting, stopping, loading or unloading of jobs. It runs independently from LaunchControl.
- Added configuration option to synchronize job Label with job definition file name. Synchronization is triggered when a job definition is renamed and not when a job label is changed. (Thanks, TJ!)
- Added configuration option to specify a custom file name prefix to be used when creating a new job (Thanks again, TJ!)
- Added configuration option to specify a default value for key Program (used when creating a new job)
- Added support for dynamic templates. Read help file section 'Templates' for details.
- Improved validation of ProgramArguments
- Added support for key ProcessType, introduced in OSX Mavericks
- Helper would not be properly updated on OSX10.6 (Thanks again, Edouard!)
- Added i386 support
- Native tooltips would show up along with custom tooltips (OSX10.6)
- Display default Hard/SoftResourceLimits as placeholder for agents as well
- Crash when selecting a daemon with Hard/SoftResourceLimits key on OSX 10.6 (Thank you, Edouard!)
- Added support for OSX 10.6 (Snow Leopard)
- Offer to reload a job after saving changes to a running/loaded job
- Warn when specifying an IP address for Sockets/MulticastGroup w/o an explicit socket family
- Warn when specifying an IPv4 address for Sockets/SockNodeName or Sockets/MulticastGroup when SockFamily is set to IPv6 (and vice versa)
- Improved reporting of warnings/errors when loading a job
- Report warning when agent has configured a privileged Socket/SockServiceName
- Validate Socket/SockNodeName and Socket/SockMulticastGroup
- Warn about invalid Nice values for LaunchAgents
- Implemented custom tooltips to work around the ten-second time limit of standard OSX tooltips. This feature has to be explicitly enabled by clicking the 'Show Tooltips' button in the title bar or by pressing (Cmd-Shift ?)
- Verifying a job with multiple info sheets would make LC forget the previously selected sheet
- Selecting a socket would mark the job as modified
- Improved warning when referencing an unknown job in KeepAlive/OtherJobEnabled
- improved speed of dulicate label detection
- Suggest output redirection on job error
- Inform about available output from stdout/stderr on job error
- Continuous job validation
- Disable filters before creating a new job to avoid creating a seemingly invisible job
- Problem when changing filter attributes saved in a previous session
- Save exposed/hidden state of filter view
- Proper error reporting when encountering jobs with invalid names
- Fixed console warning about NSAlert being called from a background thread
- Graphic glitches on Retina displays (Thanks Sven and David!)
- Selecting "View>Toggle Filter" would not work (as opposed to selecting the filter button or pressing the keyboard shortcut) (Thanks David, again!)
- Handle job definitions without a Label key and broken links to job definitions gracefully (Thanks Brian and Kem)
- Improved validation of Soft/HardResourceLimits
- Improved usability of Soft/HardResourceLimits: Entering a non-numberic character will set field to 'unlimited', default values are displayed in grey
- Warn about incorrect input/output redirection
- Improved Umask config section: Display new file/directory permission example
- Improved Socket config section: Display socket permission example
- Added a link to http://launchd.info (Help>A launchd Primer)
- Always scroll to first job when switching job types (Thanks, Cüneyt!)
- Improved validation of LimitLoadToSessionType
- Crash with invalid plist files
- Mark jobs with non-unique job labels as broken
- Improved validation of KeepAlive:OtherJobsEnabled: Warn about jobs which have not been configured
- Added stopping of jobs without unloading: Job>Stop (Cmd-Shift-S)
- Clear file specific warning panel when trashing a file
- Loading/unloading and starting/stopping a job does not reset the fold state of configuration sections
- Streamlined editing of EnvironmentVariables, KeepAlive, MachServices, QueueDirectories, Sockets, StartCalendarInterval and WatchPaths
- The job name filter is now accessible via Cmd-F
- Enabling/disabling a job would not update the expert mode editor immediately
- Corrected wording in menu for KeepAlive:OtherJobEnabled. This key checks if another job is loaded and does not care about its Disabled key.
- Clearing the "Override Disabled Key" record would not update the display immediately
- Added hot-fix button when key Label has invalid case
- Warn about use of globbing symbols when EnableGlobbing has been disabled
- Warn when StartInterval lower than ThrottleInterval
- Warn when job has no valid run condition (when it can be loaded but never executed)
- Warn about use of shell globbing symbols in EnvironmentVariables
- Color coded Disabled Override in job list
- Info panels can be disabled individually in the preferences
- Rare crash when editing in Expert Mode
- Toggling 'EnableGlobbing' would not mark the job definition as modified
- Switching between "Default argv" and "Custom argv" would not mark the job definition as modified
- Suppress unnecessary log output
- Quick creation of "Keep-this-app-running-no-matter-what"-Agents. Just drop an application on the LaunchControl icon (in Dock or in Finder) and the job will be created and loaded automatically.
- When selecting jobs containing the MachServices or Sockets key the display would always scroll to these keys.
- Only explain problems related to the wellformedness of a job definition when the user selects it.
- Added support for the launchd override db: Jobs w/ overridden Disabled key are marked, the Disabled key can be overridden and overrides of the Disabled key can be removed
- The job status is now updated every five seconds.
- Added preferences option to mark deprecated keys as warnings; default: off
- Modifying the search string in a way that the currently selected job is not visible in the job list anymore would not update the selection marker in the job list
- Wrong tooltip for LowPriorityIO (Thanks, James!)
- Expanding/collapsing a section via click on the section title may be aborted by dragging the mouse cursor outside the title area; Changed orientation of the closed disclosure triangle
- Dialogs now support standard key bindings for aborting an action (Cmd-., Esc)
- Controls in expert mode editor would sometimes be displayed when no job has been selected (Thanks, Nicholas!)
- Lighter shade of green for valid sections
- Missing agent/daemon directory can now be created from within LaunchControl
- Random crash when requesting admin password while scanning job definitions (Thanks, Cüneyt!)
- Check permissions of agent/daemon directories
- Permission issues with job definition files or daemon/agent directories may now be fixed from within LaunchControl
- Small memory leak
- Graphic glitch in the 'Trash job' button while no job is selected
- Enabling/disabling a job definition having unsaved changes would revert those changes
- Improved validation of RootDirectory
- path validation/auto-completion now also works for inaccessible directories
- added validation of EnvironmentVariables (warn about referencing of environment variables like PATH=$PATH:/new/path, warn about relative paths in *PATH variables)
- path validation/auto-completion now properly honors key RootDirectory
- path validation/auto-completion now properly handles ignored keys (e.g RootDirectory key in an agent definition)
- Turned some errors into warnings for clearer distinction: errors make it impossible for launchd(8) to run a job, while warnings may just lead to unexpected behavior)
- Added job filter. User may now filter by job attributes: enabled/disabled, validation results (ok, warning, error), loaded/unloded and status (running, ok, error, signalled)
- Added validation of job definition file properties (file name, owner, permissions, etc)
- When creating a new job definition the input focus is moved to the file name, allowing the user to immediately choose a proper name without having to do an extra double-click on the file name
- Crash on startup when current user id is associated with a primary group which has no name
- When renaming a job definition would change its position in the job list, the selection would not be updated accordingly
- Added button to trace StandardOutPath and StandardInPath in Console.app
- Moving a job definition to the trash could expose a graphic glitch displaying the deleted item twice
- Adding/trashing a job definition would not always update the title bar
- Improved validation of StandardErrorPath and StandardOutPath
- Improved validation of ExitTimeout, StartInterval, ThrottleInterval and TimeOut
- Improved validation for Hard/SoftResourceLimits
- Clear label input field and disable Load/Unload button after trashing job definition
- Crash when parsing a job definition without Program and ProgramArguments key
- Don't rescan every service after renaming a job definition
- Added path auto-completion for Program, ProgramArguments, RootDirectory, WorkingDirectory, StandardIn/Out/ErrorPath, EnvironmentVariables, WatchPaths, QueueDirectories, Sockets and KeepAlive; Press Esc to trigger.
- Added descriptions for all errno codes accessible as tooltip when hovering over the error code in the status column. No more guessing at “Job failed to exec(3) for weird reason: 2“ and friends.
- Prevent LaunchControl from using the discrete gfx card
- Stability improvements
- Automatic updating 'Default argv0' in Program section did not always work (Thanks Kem!)
- Added support for OSX 10.7 Lion
- Added log view to check for launchd(8) messages while testing/debugging a job
- Added functionality to start a job regardless of its run conditions. Useful for testing/debugging jobs. Accessible via 'Jobs>Start' (Cmd-Shift S)
- Added keyboard shortcut and menu item for loading/unloading jobs. Accessible via 'Jobs>Load' (Cmd-Shift L)
- Added 'Job>Validate' (Cmd-Shift V); Validation is still automatically triggered when an action is performed inside LaunchControl. Use this command to re-validate a job after you've made changes to your system outside of LaunchControl.
- Added 'Fold/Unfold All' (Cmd-Shift ,/Cmd-Shift .). Sections in folded state now provide more information. Clicking on a section header now toggles the folding state.
- Improved status reporting
- Improved validators for various keys
- Updated help file
- Fixed a random crash that could happen when loading a modified service
- Visual glitches when collapsing/expanding some panels
- Modified jobs may now be unloaded without having to save the first
- Added safety dialogs for all destructive actions (enable, disable, move to trash, save, rename); Each dialog may be suppressed
- Added keyboard shortcuts for 'File>New' and 'File>Move to Trash'
- Mouse pointer was not always updated properly when dragging items from the palette
- Error message about invalid key Label would stick
- Removed unnecessary log messages
- Clicking the 'Dismiss' button in the acknowledgements window would crash the application