Mac crontab: Creating MacOS startup jobs with crontab, er, launchd

Table of Contents1 - macOS: crontab, launchd, and launchctl2 - Running a simple command every minute with Mac launchd3 - 1) Move to the $HOME/Library/LaunchAgents directory4 - 2) Create a Mac plist file to describe your job5 - 3) Tell MacOS about your Mac plist launchd file6 - 4) How Mac launchd works with system reboots7 - An important note about root and sudo access8 - MacOS launchd, launchctl, and plist resources9 - MacOS startup jobs: cron and crontab, launchd and launchctl

MacOS crontab FAQ: How do I run a Unix job (or shell script) through the MacOS crontab facility? I keep trying to edit my Mac crontab file, but my Mac won't save my crontab changes, or run my program.

Back to top

macOS: crontab, launchd, and launchctl

Way back when (~2012-2014), I found that the Mac crontab command was deprecated on MacOS, and the Apple documentation encouraged you to use their launchd facility. Here’s a blurb from Apple's crontab man page:

“Darwin note: Although cron(8) and crontab(5) are officially supported under Darwin, their functionality has been absorbed into launchd(8), which provides a more flexible way of automatically executing commands. See launchctl(1) for more information.”

Mac launchctl StartInterval not working

It looks like the Mac launchd launchctl StartInterval is broken in Mac OS X 10.6.x, at least the current version (10.6.7). When I run a Mac launchctl script like this, which used to work just fine:

The MacOS launchd plist format

Mac OS X launchd plist FAQ: Can you share some Mac OS X launchd/launchctl plist file format examples?

I started to write a long tutorial on the Mac OS X launchd plist format, but I think an easier way (for me) is to point you to a couple of references that explain the launchd plist format fairly well.

MacOS launchd plist StartInterval and StartCalendarInterval examples

Mac OS X launchd plist FAQ: Can you share some examples of how to use the Mac OS X launchd plist StartInterval and StartCalendarInterval keys?

Here's a quick look at the Mac OS X launchd StartInterval and StartCalendarInterval keys. These two keys can be used to represent time values in a Mac launchd plist file, and many people have questions about them.

Mac OS X launchd plist StartInterval examples

The general syntax for the Mac OS X launchd plist StartInterval key is shown here:

MacOS ‘launchd’ examples (launchd plist example files)

Mac OS X launchd FAQ: Can you share some Mac launchd examples (also written as launchd plist examples, or launchctl examples)?

In an earlier tutorial (Mac OS X startup jobs with crontab, launchctl, and launchd) I demonstrated how to use the Mac OS X launchd facility instead of cron to run what would normally be a cron (crontab) job. As I started working with launchd and launchctl, I realized it would probably be helpful to see several different launchd examples, specifically launchd plist file examples.