On Aug 27, 2008, at 11:28 AM, Crawford Kyle wrote:
Hello,
I often need to schedule scripts to run at an interval, but I don't know how long that script will take to complete and I don't want the script to run again at its normal interval unless the script isn't running.
I've done this with pid files and grepping through ps lists to exit the script if another instance is running, but I was wondering if there is something built into launchd to handle this.
I tried combining LaunchOnlyOnce with StartInterval, but with LaunchOnlyOnce, it seems that the job gets unloaded as soon as it runs, so the interval becomes pretty meaningless.
Is there a way to do this with launchd? Should there be a way to do this with launchd?
What you want is implicit with launchd. LaunchOnlyOnce will eventually get renamed to "HopefullyNeverExits" Just setup a StartInterval and you're set. If the job is still running, launchd will not start a second copy. davez