Mac OS X: à la commande ne fonctionne pas

42

Je vais planifier un travail en utilisant à la commande. Ici j'ai essayé la commande suivante:

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

J'ai vu le travail est programmé en utilisant à -l. Cependant, je n'ai pas vu d'écho.

Je suppose que je devrais peut-être ajouter un utilisateur au fichier at.allow. Je ne trouve pas at.allow sur mon Mac (Snow Leopard). Vous ne savez pas ce que je dois faire pour tester cela à la commande?

David.Chu.ca
la source
J'ai essayé de lire les informations de l'homme à. Il a indiqué que "Si le fichier _PERM_PATH / at.allow existe, seuls les noms d'utilisateurs qui y sont mentionnés sont autorisés à utiliser à ... Si ... at.allow n'existe pas, _PERM_PATH / at.deny est coché, .." I Je ne suis pas sûr de ce qu'est _PERM_PATH.
Dans le cas de Apple OSX Leopard, PERM_PATH pour "at" est / usr / lib / cron.
Richard Hoskins
Pour Mac OS X Lion, c'est/var/at
Stefan Schmidt

Réponses:

40

Pour activer le atrundémon nécessaire , comme man atrunindiqué, exécutez:

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

en tant que racine (par exemple via sudo). Une fois que vous avez fait cela, /var/at/sera le répertoire de clés (bien que le moyen le plus simple consiste à utiliser en attant que root - par exemple, encore une fois, par sudo! -).

Alex Martelli
la source
Je sais que vous devez être root pour activer le démon atrun, mais vous n'avez pas besoin d'être root pour exécuter les commandes "à". (Sauf si ces commandes nécessitent une racine.)
Richard Hoskins
1
cette activation ou atrun survit-elle au redémarrage?
Eric O Lebigot
D'après la page de manuel, oui, mais je ne l'ai pas essayé.
Stefan Schmidt
1
si /var/at/at.denyest vide, vous n'avez pas besoin d'être root pour faire la queue au travail, sinon vous pouvez ajouter votre nom d'utilisateur à /var/at/at.allow.
Stefan Schmidt
Je devrais d'abord lire les pages de manuel ... Merci!
polym
13

Dans Snow Leopard, vous devez:

  1. Editez le /System/Library/LaunchDaemons/com.apple.atrun.plist, changez le noeud enfant désactivé de true-> false.

  2. Décharger le courant /System/Library/LaunchDaemons/com.apple.atrun.plistavec:

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

    Puis chargez la version modifiée

    sudo launchctl load -F /System/Library/LaunchDaemons/com.apple.atrun.plist
    
  3. Vérifiez que cela fonctionne avec:

    echo blah | at now+1
    
  4. En cas d'échec de l'écho pour une raison différente, vous devriez au moins pouvoir voir la file d'attente être effacée avec:

    atq
    
Somantra
la source
1
C'est le seul qui a fonctionné pour moi sur OSX 10.10 Yosemite.
Colin Dean
5

J'ai essayé ceci sur OS X Lion et cela a semblé fonctionner.

Commencez par activer le atrundémon:

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

Ajoutez ensuite [votre nom d'utilisateur] à /var/at/at.allow.

Une fois exécuté, vous recevrez une sortie à /var/mail/[your username]

Je trouve que les éléments en file d'attente batchprennent quelques minutes pour être réellement exécutés.

chris838
la source
2

D' autres ont répondu au sujet à être désactivé sur Mac OS X, et je ne sais pas, mais il y a un autre problème: Où pensez-vous que votre écho commande pour imprimer son message? Sur d'autres systèmes Unix que j'ai utilisés, il ne s'imprime pas dans la même fenêtre shell où vous avez donné la commande at . N'oubliez pas que lorsque le travail at est exécuté, vous n'êtes peut-être même plus connecté.

Essayez d'écrire quelque chose dans un fichier à la place, et voyez si ce fichier apparaît au bon moment.

Thomas Padron-McCarthy
la source
La page de manuel indique que la sortie vous sera envoyée.
Stefan Schmidt
@Stefan: Oui, et cela a bien fonctionné dans les années 1980, lorsque le courrier était géré localement sur le même ordinateur, mais mon expérience (avec d'autres types de systèmes Unix que Mac OS X) est que vous ne devriez pas vous attendre à recevoir de courrier.
Thomas Padron-McCarthy
0

Mon installation de OS X (10.4) dit dans man at:

REMARQUE
     at, batch, atq, atrm sont tous désactivés par défaut sous Mac OS X.

Avez-vous activé atrunselon les instructions là-bas?

Greg Hewgill
la source
J'ai essayé de trouver où est atrun dans mon Mac. Sur le Web, une autre option consiste à ajouter un utilisateur à at.allow. Je n'ai pas pu trouver ce fichier (at.allow) non plus.