Mac OS X: a comando non funzionante


42

Pianificherò un lavoro usando a comando. Qui ho provato il seguente comando:

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

Ho visto che il lavoro è programmato usando a -l. Tuttavia, non ho visto alcuna eco.

Immagino che possa essere necessario aggiungere l'utente al file at.allow. Non riesco a trovare at.allow sul mio Mac (Snow Leopard). Non sei sicuro di cosa devo fare per testarlo a comando?


Ho provato a leggere informazioni da man a. Ha menzionato che "Se esiste il file _PERM_PATH / at.allow, solo i nomi utente menzionati in esso possono essere utilizzati su ... Se ... at.allow non esiste, _PERM_PATH / at.deny è selezionato, .." I non sono sicuro di cosa sia _PERM_PATH.

Nel caso di Apple OSX Leopard, PERM_PATH per "at" è / usr / lib / cron.
Richard Hoskins,

Per Mac OS X Lion è/var/at
Stefan Schmidt,

Risposte:


40

Per abilitare il atrundemone necessario , come man atrundetto, eseguire:

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

come root (ad es. via sudo). Una volta fatto questo, /var/at/sarà la directory chiave (anche se il modo più semplice è quello di usare atcome root - ad esempio, ancora una volta, da sudo! -).


So che devi essere root per abilitare il demone atrun, ma non devi essere root per eseguire i comandi "at". (A meno che quei comandi non richiedano il root.)
Richard Hoskins,

1
questa attivazione o atrun sopravvive ai riavvii?
Eric O Lebigot,

Secondo la pagina man sì, ma non l'ho provato.
Stefan Schmidt,

1
se /var/at/at.denyè vuoto non è necessario essere root per mettere in coda i lavori, altrimenti è possibile aggiungere il nome utente a /var/at/at.allow.
Stefan Schmidt,

Prima dovrei leggere le pagine man ... Grazie!
polimero

13

In Snow Leopard devi:

  1. Modifica il /System/Library/LaunchDaemons/com.apple.atrun.plist, modifica il nodo figlio disabilitato da true-> false.

  2. Scarica la corrente /System/Library/LaunchDaemons/com.apple.atrun.plistcon:

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

    Quindi caricare la versione modificata

    sudo launchctl load -F /System/Library/LaunchDaemons/com.apple.atrun.plist
    
  3. Prova che funziona con:

    echo blah | at now+1
    
  4. Nel caso in cui l'eco non riesca per un motivo diverso, dovresti riuscire almeno a vedere la coda essere cancellata con:

    atq
    

1
Questo è l'unico che ha funzionato per me su OSX 10.10 Yosemite.
Colin Dean,

5

L'ho provato su OS X Lion e sembrava funzionare.

Per prima cosa abilita il atrunDeamon:

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

Quindi aggiungi [il tuo nome utente] a /var/at/at.allow.

Una volta eseguito, riceverai l'output a /var/mail/[your username]

Trovo che gli elementi in coda con batchrichiedano alcuni minuti per essere effettivamente eseguiti.


2

Altri hanno risposto circa a essere disattivata su Mac OS X, e io non lo so, ma c'è un altro problema: Dove vi aspettate il vostro eco comando per stampare il suo messaggio? Su altri sistemi Unix che ho usato non viene stampato nella stessa finestra della shell in cui hai dato il comando at . Ricordare che quando viene eseguito il lavoro at , potrebbe non essere più possibile accedere.

Prova invece a scrivere qualcosa su un file e vedi se quel file appare al momento giusto.


La pagina man indica che l'output verrà inviato per posta.
Stefan Schmidt,

@Stefan: Sì, e ha funzionato bene negli anni '80, quando la posta veniva gestita localmente sullo stesso computer, ma la mia esperienza (con altri tipi di Unix rispetto a Mac OS X) è che al giorno d'oggi non dovresti aspettarti di ricevere posta.
Thomas Padron-McCarthy,

0

La mia installazione di OS X (10.4) dice in man at:

NOTA
     at, batch, atq, atrm sono tutti disabilitati per impostazione predefinita su Mac OS X.

Hai abilitato atrunsecondo le istruzioni lì?


Ho provato a trovare dov'è atrun sul mio Mac. Dal web, un'altra opzione è quella di aggiungere l'utente ad at.allow. Neanche questo file è stato trovato (at.allow).
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.