soma-zone
LaunchControl
FAQ
The only fully-featured launchd GUI for macOS. A complete solution to create, manage and debug launchd(8) services.
Download Buy
Product Icon

FAQ

Why does LaunchControl install a privileged helper tool?

Some tasks (e.g. changing Global or System Daemons or Agents, querying the status of Daemons, configuring fdautil, …) cannot be performed by a regular user — they require root privileges. If you were to perform those actions via the command line you would use sudo(8) for this purpose. The Apple sanctioned technique for performing operations requiring elevated privileges are helper tools. Up to and including macOS 12 they are installed on behalf of an application in /Library/PrivilegedHelperTools and are called in a secure fashion by this application whenever it needs to perform an operation requiring elevated privileges. Starting with macOS 13 the privileged helper tools are installed inside the application bundle.

As long as you are only dealing with User Agents which don't need access to protected folders LaunchControl does not require a helper tool.

How do I enable/disable a job?

The main window is divided in three parts. The left-most section shows a list of all jobs of the currently selected type. This list has three columns, the name of the configuration file (without the .plist extension), a checkbox and a status description. Use the check box to enable/disable a service. Note: This operation instantly modifies the job configuration.

How do I add a new job?

Select File>New (⌘N) from the menu. Select the kind of job you'd like to create in the upcoming panel. Click Create to create the service. You can optionally click the Basic Settings button to pre-configure the job with common keys. These basic settings may be persisted so they are applied to jobs created in the future.

How do I remove an existing job?

The main window is divided in three parts. The left-most section shows a list of all jobs of the currently selected type. Select the job you'd like to remove from the service list and select File>Move to Trash… (⌘⌫) from the menu. The .plist file will not be deleted, it will be moved to the Trash instead from where it can be restored if needed. In the General tab of the LaunchControl settings you can configure LaunchControl to delete a job definition instead.

How do I rename an existing job?

The main window is divided in three parts. The left-most section shows a list of all jobs of the currently selected type. This list has three columns, the name of the configuration file (without the .plist extension), a checkbox and a status description. Select the name and press ⏎ to rename this file. The .plist file extension is appended automatically.

How do I add a new configuration key to a job?

Press ⇧⌘P or click the + button below the last key in the Standard Editor to bring up the Key Palette. Select the required key and press ⏎ to add this key. Alternatively drag the key from the Palette onto the Standard Editor.

How do I grant Full Disk Access to my script on macOS Mojave and newer?

LaunchControl ships a utility called fdautil which allows you to grant Full Disk Access to a script without compromising Apple's new security feature. For further details see the LaunchControl manual section “fdautil: A safe way to grant Full Disk Access to individual scripts on macOS Mojave and newer”. The manual is accessible from the LaunchControl Help Menu (Help>LaunchControl Help).

What is the recommended way to debug a job?

While debugging a job it is not necessary to load/unload it manually every time a change to the configuration is made. Event triggered jobs might not be executed at all when loading. The preferred method is to start the job unconditionally by clicking the Start botton from the toolbar ot by selecting Job>Start (⌘⇧T) from the menu. When a change is detected, a request panel will appear: click the Save, Reload and Start button.

  • Check for warnings and errors

    This is the obvious first step. Make sure you understand every warning and error that LaunchControl reports. Hovering over a warning or error sign in a config sections header will provide details about the error/warning.

  • Check the error code

    Check for the exit code of the job in the status column of the job list. Move your mouse over the error code to bring up a tool tip with a likely error reason. See bullet "Check the launchd(8) log" to find out if this error reason applies.

  • Check the launchd(8) log

    It is a good idea to have a look at what launchd(8) has to say about the job while trying run it. Open the log panel by selecting its icon in the toolbar. Place the log panel at a convenient location. Then start the job by selecting Job>Start (⌘⇧T) from the menu. The launchd log will be updated, only information relevant to the selected job will be shown. In this log you will find all information provided by launchd itself. Watch out for warnings and errors.

  • Check the jobs standard error/output

    Make sure you configure the keys StandardErrorPath and StandardOutPath. The job might write relevant information to either of these. After running the job open the Standard Out and Standard Error log panels by selecting their icons in the toolbar and place them at a convenient location. In these logs you will find all information provided by the script/executable the job did run.

When trying to run LaunchControl I get a dialog stating that LaunchControl.app can't be opened. Why is that?

You have most likely been using a broken decompression utility to unarchive LaunchControl. Please use the decompression utility provided with macOS.

In Finder please right-click on the archive and select Open With>Archive Utility.app from the context menu.

My license key does not work

Please make sure that you have entered all information exactly as provided in the licensing email. Case does matter! Also double-check if the license key has been issued for the software version you are trying to register.

How do I uninstall LaunchControl?

This is not exactly a frequently asked question, but It might be of interest to some.

Paste this in Terminal.app on an administrator account on your Mac:

/bin/bash -c "$(curl -fsSL https://www.soma-zone.com/LaunchControl/uninstall-launchcontrol.sh)"

You can also download the script and execute it manually.