Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I am going to schedule a job by using at command. Here I tried the following command:

$ at now + 1 minute
echo 'Test at command'
<EOD>

I saw the job is scheduled by using at -l. However, I saw no echo out.

I guess that I may need to add user to at.allow file. I cannot find at.allow in my Mac (Snow Leopard). Not sure what I need to do to test this at command?

share|improve this question

migrated from stackoverflow.com Sep 19 '09 at 5:03

This question came from our site for professional and enthusiast programmers.

    
I tried to read info from man at. It mentioned that "If the file _PERM_PATH/at.allow exists, only usernames mentioned in it are allowed to use at... If ... at.allow does not exists, _PERM_PATH/at.deny is checked,.." I am not sure what _PERM_PATH is. –  David.Chu.ca Sep 19 '09 at 4:41
    
In the case of Apple OSX Leopard, PERM_PATH for "at" is /usr/lib/cron. –  Richard Hoskins Sep 19 '09 at 15:28
    
For Mac OS X Lion it's /var/at –  Stefan Schmidt Oct 12 '11 at 19:44

5 Answers 5

up vote 17 down vote accepted

To enable te needed atrun daemon, as man atrun says, execute:

launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist

as root (e.g. via sudo). Once you've done that, /var/at/ will be the key directory (though the simplest way is to use at as root -- e.g., once again, by sudo!-).

share|improve this answer
    
I know that you need to be root to enable the atrun daemon, but you do not need to be root to run "at" commands. (Unless those commands require root.) –  Richard Hoskins Sep 19 '09 at 15:24
    
does this activation or atrun survive reboots? –  EOL Jun 30 '11 at 9:38
    
According to the man page yes, but I haven't tried it. –  Stefan Schmidt Oct 12 '11 at 19:38
1  
if /var/at/at.deny is empty you don't need to be root to queue at jobs, otherwise you can add your username to /var/at/at.allow. –  Stefan Schmidt Oct 12 '11 at 19:42

In Snow Leopard you need to:

1) Edit the /System/Library/LaunchDaemons/com.apple.atrun.plist, change the disabled child node from true -> false.

2) Unload the current /System/Library/LaunchDaemons/com.apple.atrun.plist with:

sudo launchctl unload -F /System/Library/LaunchDaemons/com.apple.atrun.plist

Then load the edited version

sudo launchctl load -F /System/Library/LaunchDaemons/com.apple.atrun.plist

3) Test that it works with:

echo blah | at now+1

4) In case the echo fails for a different reason, you should be able to at least see the queue get cleared with:

atq

share|improve this answer
    
This is the only one that worked for me on OSX 10.10 Yosemite. –  Colin Dean Nov 8 at 20:24

Others have replied about at being disabled on Mac OS X, and I don't know about that, but there is another problem: Where do you expect your echo command to print its message? On other Unix systems that I have used it does not print in the same shell window where you gave the at command. Remember that when the at job is run, you might not even be logged in any more.

Try to write something to a file instead, and see if that file appears at the right time.

share|improve this answer
    
The man page states, that the output will be mailed to you. –  Stefan Schmidt Oct 12 '11 at 19:39
    
@Stefan: Yes, and that worked well in the 1980's, when mail was handled locally on the same machine, but my experience (with other types of Unix than Mac OS X) is that nowadays you shouldn't expect to get any mail. –  Thomas Padron-McCarthy Oct 13 '11 at 3:04

I tried this on OS X Lion and it seemed to work.

First enable the atrun deamon:

launchctl load -w
/System/Library/LaunchDaemons/com.apple.atrun.plist

Then add [your username] to /var/at/at.allow.

When executed you will receive output at /var/mail/[your username]

I find that queued items with batch take a few minutes to get actually get executed.

share|improve this answer

My installation of OS X (10.4) says in man at:

NOTE
     at, batch, atq, atrm are all disabled by default on Mac OS X.

Have you enabled atrun according to the instructions there?

share|improve this answer
    
I tried to find where is atrun in my Mac. From web, another option is to add user to at.allow. I could not find this file (at.allow) neither. –  David.Chu.ca Sep 19 '09 at 4:36

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.