1.14.1

New feature

  • Warn about too large values in ExitTimeOut, StartInterval, ThrottleInterval and TimeOut

Fix

  • Problem entering values greater 9999 for ExitTimeOut, StartInterval, ThrottleInterval and TimeOut with specific locale settings

Version 1.14

New features

  • It is now possible to generate values for StartCalenderInterval by evaluating a cron-style time specification

Bug fixes

  • 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!)

Version 1.13.5

Bug fixes

  • Crash when clicking "Save" after switching from a modified job definition to a new one (Thanks, Arie!)

Version 1.13.4

Bug fixes

  • StartCalendarInterval/Month is not zero-based (Thanks, Jeff!)
  • Random crash when switching between job definitions (Thanks again, Jeff!)

Version 1.13.3

Bug fixes

  • 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!)

Version 1.13.2

New features

  • Remember "Show Tooltips" state across restarts.
  • Added keyboard shortcuts to switch between job categories. See menu View>Goto.

Changes

  • 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.

Fixes

  • Disable save button in template save dialog when template name is empty.

Version 1.13.1

Withdrawn

Version 1.13

New features

  • 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

Bug fixes

  • Helper would not be properly updated on OSX10.6 (Thanks again, Edouard!)

Version 1.12.1

New features

  • Added i386 support

Bug fixes

  • 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!)

Version 1.12

New features

  • 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 ?)

Bug fixes

  • Verifying a job with multiple info sheets would make LC forget the previously selected sheet
  • Selecting a socket would mark the job as modified

Changes

  • Improved warning when referencing an unknown job in KeepAlive/OtherJobEnabled
  • improved speed of dulicate label detection

Version 1.11

New features

  • Suggest output redirection on job error
  • Inform about available output from stdout/stderr on job error
  • Continuous job validation

Bug fixes

  • Disable filters before creating a new job to avoid creating a seemingly invisible job

Version 1.10.4

Bug fixes

  • Problem when changing filter attributes saved in a previous session
  • Save exposed/hidden state of filter view

Version 1.10.3

Bug fixes

  • Proper error reporting when encountering jobs with invalid names
  • Fixed console warning about NSAlert being called from a background thread

Version 1.10.2

Bug fixes

  • 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!)

Version 1.10.1

Bug fixes

  • Handle job definitions without a Label key and broken links to job definitions gracefully (Thanks Brian and Kem)

Version 1.10

New features

  • 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)

Bug fixes

  • Always scroll to first job when switching job types (Thanks, Cu╠łneyt!)

Version 1.9.1

New features

  • Improved validation of LimitLoadToSessionType

Bug fixes

  • Crash with invalid plist files

Version 1.9

New features

  • 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)

Bug fixes

  • 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

Miscellaneous

  • Streamlined editing of EnvironmentVariables, KeepAlive, MachServices, QueueDirectories, Sockets, StartCalendarInterval and WatchPaths

Version 1.8.1

New features

  • The job name filter is now accessible via Cmd-F

Bug fixes

  • 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

Version 1.8

New features

  • 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

Bug fixes

  • Rare crash when editing in Expert Mode
  • Toggling 'EnableGlobbing' would not mark the job definition as modified
  • Switching between "Default argv[0]" and "Custom argv[0]" would not mark the job definition as modified
  • Suppress unnecessary log output

Version 1.7.1

New features

  • 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.

Bug fixes

  • 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.

Version 1.7

New features

  • 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

Version 1.6.2

Bug fixes

  • 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!)

Changes

  • Lighter shade of green for valid sections

Version 1.6.1

New features

  • Missing agent/daemon directory can now be created from within LaunchControl

Bug fixes

  • Random crash when requesting admin password while scanning job definitions (Thanks, Cüneyt!)

Version 1.6

New features

  • Check permissions of agent/daemon directories
  • Permission issues with job definition files or daemon/agent directories may now be fixed from within LaunchControl

Bug fixes

  • 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

Version 1.5

New features

  • 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)

Bug fixes

  • 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)

Miscellaneous

  • 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)

Version 1.4

New features

  • 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)

Version 1.3.1

Improved

  • 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

Bug fixes

  • 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

Version 1.3

New features

  • Added button to trace StandardOutPath and StandardInPath in Console.app

Bug fixes

  • 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

Misc

  • Improved validation of StandardErrorPath and StandardOutPath
  • Improved validation of ExitTimeout, StartInterval, ThrottleInterval and TimeOut

Version 1.2.1

New features

  • Improved validation for Hard/SoftResourceLimits

Bug fixes

  • 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

Version 1.2

New features

  • 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.

Bug fixes

  • Prevent LaunchControl from using the discrete gfx card
  • Stability improvements

Version 1.1.1

Bug fix:

  • Automatic updating 'Default argv0' in Program section did not always work (Thanks Kem!)

Version 1.1

New features

  • 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

Bug fixes

  • 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

Version 1.0.2

New features

  • 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'

Bug fixes

  • 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

Version 1.0.1

Bug fixes

  • Clicking the 'Dismiss' button in the acknowledgements window would crash the application

Version 1.0

Initial release