Lingon Lingon

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

Uses

Run whatever 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.

Price - Lingon 3

Lingon 3 only costs US$ 5!

You can get Lingon 3 in
Mac App Store

Mac App Store
Price - Lingon X

Lingon X only costs US$ 10!

Download Lingon X from
here

See the EULA and get a license for Lingon X here

Lingon 3 and Lingon X

There are now 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 and that is not possible in Mac App Store.

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 requires OS X 10.8 Mountain Lion or later (it is fully compatible with OS X 10.9 Mavericks) and Lingon 3 requires OS X 10.7 Lion or later.
If you are using OS X 10.6 Snow Leopard you can get Lingon 2 instead.

A great utility...its UI is awesome

Dave Hamilton, Mac Geek Gab & The Mac Observer about Lingon 3
Lingon 3 Lingon X
Price US$ 5 US$ 10
Upgrade price US$ 7 (from any Mac App Store version)
Site license US$ 150
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, Norwegian, Portuguese, Spanish, Swedish
Requirements 10.7 Lion and later 10.8 Mountain Lion and later
Buy Mac App Store
EULA Apple Peter Borg Apps

Screens

Lingon 3
Lingon X - Clean and intuitive UI
Lingon X - Root and multiple dates

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 previously obtained a Lingon app from Mac App Store
  • 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.

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.

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 Disabled 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 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 included 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.

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.

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 turned off?

If your Mac is turned off or 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 turned off it will coalesce them so it will only run once.

Release Notes
X 1.2.2
  • Some small improvements and bug fixes
X 1.2.1
  • Some small bug fixes
X 1.2
  • Added way to run a job at a specific minute every hour
  • Added the StandardOutPath and StandardErrorPath keys to the Advanced panel
  • Added a basic contextual menu to the jobs
  • Some other small fixes and improvements
X 1.1.5
  • Some small fixes and improvements
X 1.1.4
  • Some small bug fixes
X 1.1.3
  • Some small fixes
X 1.1.2
  • Fixed a bug when deleting rows from the Time section
X 1.1.1
  • Some small fixes
X 1.1
  • Added the Disabled key to the advanced section
  • Some small fixes and improvements
X 1.0.2
  • Added more translations: Danish, Finnish, Norwegian
  • Some small bug fixes
X 1.0.1
  • Added more translations: Dutch, Italian, Portuguese
  • Some small bug fixes
X 1.0

Compared to previous releases Lingon X 1.0 has these new features:

  • Run jobs as root
  • Run jobs as all users
  • Can set multiple dates
  • More settings
  • See system jobs (read-only)
  • Filter to easily find the job you want
  • Better interface
  • More translations
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.1.3
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
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

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)
  • Mounting a volume: starts the job whenever a volume is mounted in the system
  • 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

  • Debug: gives more information when starting the job in the system console
  • 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)
  • EnableGlobbing: allows wildcards in an argument in Run
  • 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
  • Disabled: will stop the job and it will not run as long as this option is checked
  • 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
  • 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