Categories
General

AppleScript and cron

>What’s different in crontab? What can I do about it to get my
>Applescripts to run?

You’re seeing a security “feature.” It has to do with Mach
messages, which form the guts of Apple Events on Mac OS X. For
security reasons, processes in Mach are segregated into “process
groups”, and a process in one group is not allowed to send messages
to a process in a different group. Because cron gets launched at
boot time, it’s in root’s process group, while every application
launched by your login (including the Finder) is in your process
group. Therefore, a script run by cron can’t talk to any
application that you launched.

There’s something of a bug in AppleScript here, too — at its level,
it can see the application, so it tells the Apple Event Manager to
send it a message, and you get a surprising error.

It’s not clear what the truly correct solution is here — there are
valid security reasons for keeping the process group restrictions in
place. In the meantime, what can you do? Well, scripting additions
should still work, so you can use those. cron unfortunately makes
sure that only one instance of cron is ever running at once, so you
can’t launch your own personal cron, though if you’re feeling extra
studly, you could get the source for cron (it is open, after all)
and modify it appropriately.

–Chris Nebel
AppleScript Engineering