Mac OS X: at command funktioniert nicht

42

Ich plane einen Job mit at command. Hier habe ich folgenden Befehl ausprobiert:

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

Ich habe gesehen, dass der Job mit at -l geplant ist. Ich sah jedoch kein Echo.

Ich vermute, dass ich möglicherweise Benutzer zur Datei at.allow hinzufügen muss. Ich kann at.allow auf meinem Mac (Snow Leopard) nicht finden. Nicht sicher, was ich tun muss, um dies auf Befehl zu testen?

David.Chu.ca
quelle
Ich habe versucht, Informationen von Mann zu lesen. Es wurde erwähnt, dass "Wenn die Datei _PERM_PATH / at.allow existiert, dürfen nur die darin erwähnten Benutzernamen verwendet werden. Wenn ... at.allow nicht existiert, wird _PERM_PATH / at.deny überprüft." Ich bin mir nicht sicher, was _PERM_PATH ist.
Im Falle von Apple OSX Leopard ist PERM_PATH für "at" / usr / lib / cron.
Richard Hoskins
Für Mac OS X Lion ist es/var/at
Stefan Schmidt

Antworten:

40

Um den benötigten atrunDaemon zu aktivieren , führen Sie wie man atrunfolgt aus:

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

als root (zB via sudo). Sobald Sie das getan haben, /var/at/wird das Schlüsselverzeichnis (obwohl der einfachste Weg ist, es atals root zu verwenden - z. B. noch einmal von sudo! -).

Alex Martelli
quelle
Ich weiß, dass Sie root sein müssen, um den atrun-Daemon zu aktivieren, aber Sie müssen nicht root sein, um "at" -Befehle auszuführen. (Es sei denn, diese Befehle erfordern root.)
Richard Hoskins
1
überlebt diese Aktivierung oder atrun Neustarts?
Eric O Lebigot
Laut Manpage ja, aber ich habe es nicht ausprobiert.
Stefan Schmidt
1
Wenn /var/at/at.denyleer, müssen Sie nicht root sein, um Aufträge in die Warteschlange zu stellen. Andernfalls können Sie Ihren Benutzernamen hinzufügen /var/at/at.allow.
Stefan Schmidt
Ich sollte zuerst die Manpages lesen ... Danke!
Polym
13

In Snow Leopard müssen Sie:

  1. Bearbeiten Sie den /System/Library/LaunchDaemons/com.apple.atrun.plist, ändern Sie den deaktivierten untergeordneten Knoten von true-> false.

  2. Entladen Sie den Strom /System/Library/LaunchDaemons/com.apple.atrun.plistmit:

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

    Laden Sie dann die bearbeitete Version

    sudo launchctl load -F /System/Library/LaunchDaemons/com.apple.atrun.plist
    
  3. Testen Sie, ob es funktioniert mit:

    echo blah | at now+1
    
  4. Falls das Echo aus einem anderen Grund fehlschlägt, sollten Sie zumindest sehen können, wie die Warteschlange gelöscht wird:

    atq
    
Somantra
quelle
1
Dies ist die einzige, die für mich unter OSX 10.10 Yosemite funktioniert hat.
Colin Dean
5

Ich habe es unter OS X Lion versucht und es schien zu funktionieren.

Aktivieren Sie zuerst den atrunDeamon:

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

Fügen Sie dann [Ihren Benutzernamen] hinzu /var/at/at.allow.

Nach Ausführung erhalten Sie eine Ausgabe um /var/mail/[your username]

Ich finde, dass in der Warteschlange befindliche Elemente batcheinige Minuten benötigen , um tatsächlich ausgeführt zu werden.

chris838
quelle
2

Andere haben geantwortet etwa bei unter Mac OS X deaktiviert wird, und ich weiß nicht so recht , aber es gibt ein weiteres Problem: Wo erwarten Sie Ihren Echo - Befehl seine Nachricht drucken? Auf anderen von mir verwendeten Unix-Systemen wird nicht in dem Shell-Fenster gedruckt, in dem Sie den Befehl at eingegeben haben. Denken Sie daran, dass Sie möglicherweise nicht einmal mehr angemeldet sind , wenn der at- Job ausgeführt wird.

Versuchen Sie stattdessen, etwas in eine Datei zu schreiben, und prüfen Sie, ob diese Datei zum richtigen Zeitpunkt angezeigt wird.

Thomas Padron-McCarthy
quelle
Die Manpage gibt an, dass die Ausgabe an Sie gesendet wird.
Stefan Schmidt
@Stefan: Ja, und das hat in den 1980er Jahren gut funktioniert, als E-Mails lokal auf demselben Computer verarbeitet wurden, aber meiner Erfahrung nach (mit anderen Unix-Typen als Mac OS X) sollten Sie heutzutage nicht damit rechnen, E-Mails zu erhalten.
Thomas Padron-McCarthy
0

Meine Installation von OS X (10.4) sagt in man at:

HINWEIS
     at, batch, atq, atrm sind unter Mac OS X standardmäßig deaktiviert.

Haben Sie dort atrungemäß den Anweisungen aktiviert ?

Greg Hewgill
quelle
Ich habe versucht herauszufinden, wo sich atrun auf meinem Mac befindet. Im Web können Sie auch Benutzer zu at.allow hinzufügen. Ich konnte diese Datei (at.allow) auch nicht finden.