Lingon Lingon

An easy to use yet powerful utility that runs things automatically on your Mac

Run what you want, whenever you want

Lingon can start an app, a script or run a command automatically whenever you want it to. You can schedule it to run at a specific time, regularly or when something special happens.

Lingon can also make sure that an app or a script automatically restarts if it crashes. Lingon can do all this for you and much more.

Lingon X is based on the great Lingon 3 and eXtends it with new features like running jobs as root and at multiple dates. It is now even easier to use yet much more powerful.

Lingon lets you run things automatically by modifying configuration files for the system function called "launchd". This means that you can also edit or remove jobs created by other apps. And the system handles running the jobs in the background so you don't need to have Lingon open after you have saved your job.

Lingon X 2.0

Download Lingon X 2.0 from here

Free to download and try out. Then you can choose to buy it or not.

Buy a Lingon X 2.0 license here for only US$ 10

EULA

(Any license bought after 2014-07-31 works with Lingon X 2.0)

Lingon 3

Lingon 3 only costs US$ 5!

Buy Lingon 3 in Mac App Store   Mac App Store

A great utility...its UI is awesome

Dave Hamilton, Mac Geek Gab & The Mac Observer about Lingon 3
How-to

There are two main ways to use Lingon:

  • Edit or delete an existing job (which e.g. another service has created):
    1. Select the job from the list that you want to edit
    2. Make the changes you need and choose Save, or choose Delete from the File menu
  • Create a new job:
    1. Choose New from the File menu
    2. Give the job a unique name
    3. Decide what you want to run (e.g. a script, an app or a command) and either write the command under Run or use the Choose... button to find the script or app
    4. The job will run as your user per default but you can change that under User to e.g. run as the root user (Lingon X)
    5. Choose when you want the it to run, e.g. if you want it to restart after a crash check the Always checkbox
    6. In Lingon X, you can under Advanced choose other settings, e.g. if you want it to run when a path changes write the path under WatchPaths
    7. Choose Save to save the job and load it

See Settings for more info about the options you can choose

Settings
User (only Lingon X)

You can choose to run your jobs for either only yourself, for every user when they log in or as root e.g. directly when the computer starts up. (Please note that you many need to authenticate as an administrator when using the last two settings.)

Name

You need to give your job a unique name which no other job on the computer uses or it will not run properly. If you don't give it a name Lingon will give it an automatic name.

Run/What

Write a path to an app or a script or write a command. The easiest way to get everything right is to use the Choose... button and choose what you want to run. If you write a script please use the whole paths to any commands and if it complex and/or uses things like | or > it will not run properly so then it is better to write a script with it and then run that script with Lingon instead

Enabled (Lingon X)

If this isn't checked, it will stop the job and the job will not run until it is checked

When

Here you choose when your job should run

  • Starting up: starts the job when you save it and when you login or start the computer (depending or your setting under For)
  • Always: keeps the job running at all time and restarts if it crashes, if you manually quit it it will not restart again and then you need to resave it to run again (you can change this behaviour by using SuccessfulExit below)
  • Time (only Lingon X): here you set when it should run or if you want to want it to run repeatedly and with what interval. You can set multiple times for it run by pressing the plus button and the order is not important.
  • Every (only Lingon 3): here you set if you want it to run repeatedly and with what interval
  • At a specific time (only Lingon 3): here you set when you want it run and you can only choose one time (if you to run it at multiple times either get Lingon X or create another job
  • This file is changed (only Lingon 3): runs the job whenever this path is changed
Advanced (only Lingon X)

The options are taken directly from the launchd.plist definitions. You can read more about them here: man launchd.plist

  • LowPriorityIO: runs the job with a lower priority for accessing the disk
  • LegacyTimers: makes sure that different jobs aren't coalesced and ran at the same time to save system resources, but are run exactly when they should
  • StartOnMount: starts the job whenever a volume/disk is mounted
  • SuccessfulExit: determines whether the job should restart automatically after a manual termination when using the Always setting in When (it is only active when Always is active)
  • LaunchOnlyOnce: will run the job only once for every computer reboot no matter what settings are used
  • AbandonProcessGroup: set this to not kill any other processes started from the job when the job quits
  • LimitLoadToSessionType: only run the job in a specific session type. like e.g. at the login window (this changes only the first item in the LimitLoadToSessionType array)
  • UserName: the user name to run the job as (can only be set when running the job as root)
  • MachServices: the Mach services to be registered with the Mach bootstrap namespace (this only works simple defined dictionary in the plist)
  • WatchPaths: runs the job whenever this path is changed (this changes only the first item in the WatchPaths array)
  • WorkingDirectory: changes the working directiry to this before the job is run
  • StandardOutPath: the file which should be used for data being sent to stdout, i.e. the output from e.g. a script
  • StandardErrorPath: the file which should be used for data being sent to stderr, i.e. any errors which occurs when running the job
Lingon X 2.0

The new Lingon X 2.0 has many new features and improvements:

  • Added timeline mode to be able to see when jobs will run
  • Added list mode to see an overview of the jobs
  • The design has been streamlined and improved, you can now e.g. see directly which jobs are disabled
  • Better at automatically making sure the job will run by e.g. including whole paths to commands
  • You can now revert to an earlier saved version of your job if you e.g. make a mistake or change your mind
  • Added possibility to run jobs in a specific month in Time
  • Added new settings: LowPriorityIO, MachServices, LimitLoadToSessionType, UserName
  • You can now see the finished saved plist
  • Added Korean and Russian translations
  • Updated for OS X Yosemite 10.10
  • Many more small improvements and bug fixes
Lingon X and Lingon 3

There are two major versions of Lingon available: Lingon 3 and Lingon X. Lingon 3 can only be found in Mac App Store and Lingon X is only available outside the Mac App Store. This is because Mac App Store rules limits what an app can do and Lingon X e.g. can run jobs as root.

Both are easy to use but Lingon X is the latest and greatest version. But Lingon 3 is still for sale for those who still are running 10.7 Lion and want the comfort and convenience of Mac App Store. See the comparison table below for all the details.

Requirements

Please note that Lingon X 2.0 requires OS X Yosemite 10.10.

Lingon X 1.0 can be used on OS X 10.8 Mountain Lion and later. If you buy a 2.0 license now you can use that same license for version 1.0 until you update your system to OS X Yosemite 10.10. Download version 1.0 here (a new license works with 1.0 as well)

Lingon 3 requires OS X 10.7 Lion or later.


Screens

Lingon X 2.0 - Clean and intuitive UI
Lingon X - Clean and intuitive UI
Lingon X 2.0 - List mode
Lingon X - List mode with the advanced settings
Lingon X 2.0 - Timeline mode
Lingon X - Timeline mode
Lingon 3
Lingon 3

Lingon 3 Lingon X 2.0
Price US$ 5 US$ 10
Upgrade price US$ 7 (from any Mac App Store version or Lingon X 1.0)
Site license US$ 100
Easy to use
Run jobs automatically
Typical user Beginner/Intermediate Beginner/Intermediate/Advanced
Buy with Apple-ID
Buy without Apple-ID
Audited by Apple
Run job as root
Run job for many users
Multiple dates
See system jobs (read-only)
Filter jobs in GUI
Languages English, Swedish English, Chinese (Simplified), Danish, Dutch
Finnish, French, German, Italian, Japanese, Korean,
Norwegian, Portuguese, Russian, Spanish, Swedish
Requirements 10.7 Lion and later 10.10 Yosemite and later (Lingon X 1.0 works on 10.8 and later)
Buy Mac App Store
EULA Apple Peter Borg Apps

End User License Agreement for Lingon X

By using the licensed or demo version of Lingon X you agree to the following:

  • Lingon X is licensed to you, not sold
  • A standard license allows you to use Lingon X on up to five computers that you personally own and control
  • An upgrade license can only be used if you have a previous Lingon app from Mac App Store or a license for Lingon X
  • A site license can be used on an unlimited amount of computers within a single organization on the same physical site, e.g. a school or an office building
  • Do not share your license information with external parties
  • Comply with all applicable laws
  • Be kind and considerate to others
  • The copyright of Lingon X is owned by Peter Borg Apps AB and is protected by copyright laws
  • Lingon X is provided "as is" and Peter Borg Apps AB expressly disclaims any warranty for it
  • In no event shall Peter Borg Apps AB be liable for any damages rising out of use of Lingon X

FAQ
The name?

Lingon is the Swedish name for lingonberry and hence the icon.

How does an old license work (Lingon X)?

A license bought on or after the 1st of August 2014 will work directly with Lingon X 2.0 (if it doesn't register automatically, insert the information manually into License... in the Lingon X menu). If you have bought a license before that date you need to buy an upgrade license to use Lingon X 2.0.

Will version 1 still work (Lingon X)?

Yes. Version 1 of Lingon X works perfectly for 10.8 and 10.9 and I haven't noticed any issues with it in 10.10 Yosemite. And it is still supported in that any major issue will be fixed but there won't be any more features added.

Is there a demo version?

You can download the standard and you will have all the functionality except that you can't save a job until you buy a license.

Is there a special upgrade price for the site license (Lingon X)?

Unfortunately no at this time.

Why can't I open Lingon X?

Lingon X uses the new Gatekeeper feature in Mac OS X (see more here: http://support.apple.com/kb/HT5290 so you need to check your security settings in System Preferences - Security & Privacy. You can also ctrl-click on Lingon X and then choose Open and then you will get a dialog in which you can set that you want to run it.

How can I stop a job?

The easiest way to just stop a job is just uncheck everything under "When" in the job and then just save it. In Lingon X you can also use the Enabled checkbox. If you want to permanently delete the job you can do it with "Delete Job" (for Lingon 3) and "Delete" (for Lingon X) in the File menu.

Why does it say that my file does not contain a valid job?

The file must first of all be a valid plist which you can check in Terminal with the plutil command. Then it needs at least a key for Label and either Program or ProgramArguments.

How do I uninstall it?

Drag Lingon 3 to the trash, and you can found the preference file here: <your home folder>/Library/Preferences/com.peterborgapps.Lingon3.plist. You can see that folder in Finder by choosing Go to Folder in the Go menu and then write:

~/Library/Preferences/
Can I run a job as root?

Yes, in Lingon X you can run it as root. In Lingon 3 there is no way to run it directly as root by using the Lingon 3 GUI to comply with Mac App Store rules. But you can still use Lingon 3 to create the job and then choose Reveal in Finder from the File menu and then move the plist file to /Library/LaunchDaemons and restart.

Multiple values in Time (Lingon X)?

Just press the plus (+) button on the right hand side if you want to set multiple dates to run your job in Time in Lingon X.

What is launchd?

launchd is a system process which is included in all Macs which launches everything in the system. It uses plist files to allow configurations of what should be loaded and when it should run. Lingon writes such plist files and then launchd takes care of launching everything.

You can read more about it by writing any of these commands in Terminal:
man launchd.plist
man launchctl
man launchd
My job doesn't run, why?

Usually when a job doesn't run it is because the underlying system process (launchd - see above) doesn't think that the job is correct or that it is too complex. One of the things that you can't do is to use a pipe or use something like "exec" or "%gt;". But you can solve most problem easily when you have a really complex command by putting that command into a script and then run that script with Lingon. You can also check to see that the whole paths to any commands are included and if you run a script that references or outputs files, that you include the whole path. Also make sure that if you want to run an AppleScript to run it with the command /usr/bin/osascript or compile it as an application. And for any script that you run make sure that the script is set as an executable or is run with another command such as /usr/bin/python /path/to/script

Will the job continue to run if I close Lingon?

Yes. And if you have saved the job in the default folder (~/Library/LaunchAgents) it will start automatically after a restart.

How can I quit an application?

There isn't any built-in support for quitting a normal application. But you can do it with a AppleScript command. E.g. to quit Mail write exactly this in Run:

/usr/bin/osascript -e 'tell application "Mail" to quit'
Does it work on the Server version of Mac OS X?

Yes.

Multiple repeat intervals in Time (Lingon X)?

Only the first Repeat Interval in Time is considered when it is saved if you create multiple Repeat Intervals.

How do I buy a license (Lingon X)?

Choose Purchase... from the Lingon X menu and from there you can choose if you want to use the secure built-in store or use the web store.

How do I register the license (Lingon X)?

Choose License... from the Lingon X menu and input the exact values you received in the confirmation mail.

How do I change my license (Lingon X)?

Choose License... from the Lingon X menu and change the values. If you already have a working license you can hold down the Option key to be able to change the values.

Is VAT included in the EU prices (Lingon X)?

Yes. And if you are registered as a company in EU and has a valid VAT ID you can buy it without VAT.

Why are some jobs gray (Lingon X)?

Jobs that aren't enabled are shown in a gray color to distinguish those from the ones that will run.

How can I revert to an old version of a job (Lingon X)?

Select a job and then choose Revert To in the File menu and then choose the date of the version that you want to revert to. This feature a path based so if you delete a job you can create a new file with the same name in the same folder and then choose an older version of the job.

How can I run a job at the login window (Lingon X)?

Choose LoginWindow at the LimitLoadToSessionType in Advanced and then it will run when the login window appears and there is then no need to run the job as root.

Why can't I change UserName (Lingon X)?

You need to run a job as root to change the UserName field.

How do I change the language Lingon X uses?

Generally the language used is determined by your system setting in System Preferences - Language & Text/Region (see http://support.apple.com/kb/PH6467 for more information). But that setting applies to all apps and if you only want to change the language that Lingon X uses to e.g. English you can do this by writing this command in Terminal:

defaults write com.peterborgapps.LingonX AppleLanguages '(en)'
What happens if my Mac is asleep?

If your Mac is at sleep when a job is scheduled to run, it will run directly once your Mac has been turned on again. And if it should have run multiple times during the time it was asleep it will coalesce them so it will only run once.

How does the Info button work (Lingon X)?

The info button shows what the saved plist will contain after the job is saved as well as the path to the file. You cannot edit the plist directly in that window.

What does the timeline mode show (Lingon X)?

The timeline mode shows when the jobs that has a defined date when it will run. It shows the dates one year forward from today but it does not show the times set for "Repeat interval" in Time as they cannot be accurately determined.

PATH? (Lingon X)?

launchd, which runs the jobs or Lingon X, doesn't by default have the same PATH environment variable as e.g. Terminal. Lingon X tries to help the user by writing the PATH environment variable to the EnvironmentVariables in the job, e.g. it makes sure that /usr/local/bin is set. Lingon X only writes the PATH if it hasn't already been set. The PATH that Lingon X writes is combined from /etc/paths, the files in /etc/paths.d, the default PATH used to launch all apps, the PATH from launchctl and then /usr/local/bin and /usr/local/sbin is also added if needed. If you don't want this to happen you can turn it off by closing Lingon X and then write the following command in Terminal:

defaults write com.peterborgapps.LingonX2 AutomaticEnvPath -bool false
Release Notes
X 2.0.6
  • Added StartOnMount and LegacyTimers keys to start jobs whenever a volume is mounted and optionally run jobs on a more accurate schedule (removed the Debug and EnableGlobbing keys as they aren't used anymore)
  • Now writes the PATH environment variable in the job automatically to help jobs run as they should (this can be turned off with this command in Terminal: defaults write com.peterborgapps.LingonX2 AutomaticEnvPath -bool false)
  • Various other improvements to make sure that jobs are run even if e.g. a path to a command is missing
  • Some other improvements and bug fixes
X 2.0.5
  • Fixed a possible problem with unwanted automatic text in "Run"
  • Some other improvements and bug fixes
X 2.0.4
  • Fixed a possible crash when using certain non-Latin characters as the name for a job
  • Fixed a possible issue with unwanted automatic text in "Run"
  • Some other improvements and bug fixes
X 2.0.3
  • Fixed an issue when using the list view
  • Some other improvements and bug fixes
X 2.0.2
  • Fixed a possible issue when editing a job and a job is updated in the background
  • Some other small fixes
X 2.0.1
  • Fixed a possible performance issue when showing System jobs
  • Made it clearer that System jobs are read-only in the interface
  • Some other small fixes
X 2.0
  • Added timeline mode to be able to see when jobs will run
  • Added list mode to see an overview of the jobs
  • The design has been streamlined and improved, you can now e.g. see directly which jobs are disabled
  • Better at automatically making sure the job will run by e.g. including whole paths to commands
  • You can now revert to an earlier saved version of your job if you e.g. make a mistake or change your mind
  • Added possibility to run jobs in a specific month in Time
  • Added new settings: LowPriorityIO, MachServices, LimitLoadToSessionType, UserName
  • You can now see the finished saved plist
  • Added Korean and Russian translations
  • Updated for OS X Yosemite 10.10
  • Many more small improvements and bug fixes
3.1.3
  • Addressed a possible issue when choosing what to run
  • Addressed a rounding off issue when running jobs at intervals
  • Removed a harmless log entry that appeared when a job is loaded
  • Some other smaller bug fixes
3.1.2
  • Addressed some issues with the accessibility support
  • Some other small bug fixes
3.1.1
  • Addressed an issue with the "Keep running" option and made it more intelligent so that it doesn't restart an app if one has manually quit that app
  • Some other bug fixes
3.1
  • Added option to run job when a file or a folder has been modified
  • Added option to run job on a given day of the month
  • Added a warning and help to fix it when trying to run an uncompiled AppleScript
  • Fixed a few possible issues when using complex commands in What
  • Improved Help
  • Some other bug fixes and improvements
3.0.2
  • Fixed a bug which occurred when closing the main window
  • Now correctly finds the executable file when choosing a Java app
3.0.1
  • Fixed a possible issue when launching an AppleScript app automatically
  • Fixed an issue which could prevent Lingon from launching if a launchd was malformed in a special way
3.0
  • It is now easier than ever to create a job
  • It now starts and stops jobs automatically when saving and there's no need to log out/log in (you can now only edit and create jobs as the current user)
  • You can now choose to work on jobs outside the default folder