Mac OS X: el comando no funciona


42

Voy a programar un trabajo usando el comando. Aquí probé el siguiente comando:

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

Vi que el trabajo está programado usando -l. Sin embargo, no vi eco.

Supongo que es posible que deba agregar un usuario al archivo at.allow. No puedo encontrar at.allow en mi Mac (Snow Leopard). ¿No está seguro de lo que debo hacer para probar esto en el comando?


Traté de leer información del hombre en. Mencionó que "Si el archivo _PERM_PATH / at.allow existe, solo los nombres de usuario mencionados en él están permitidos en ... Si ... at.allow no existe, _PERM_PATH / at.deny está marcado, .." I No estoy seguro de qué es _PERM_PATH.

En el caso de Apple OSX Leopard, PERM_PATH para "at" es / usr / lib / cron.
Richard Hoskins

Para Mac OS X Lion es/var/at
Stefan Schmidt el

Respuestas:


40

Para habilitar el atrundemonio necesario , como man atrundice, ejecute:

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

como root (por ejemplo, vía sudo). Una vez que haya hecho eso, /var/at/será el directorio clave (aunque la forma más simple es usarlo atcomo raíz, por ejemplo, una vez más, por sudo!).


Sé que debe ser root para habilitar el demonio atrun, pero no necesita ser root para ejecutar comandos "at". (A menos que esos comandos requieran root.)
Richard Hoskins

1
¿Esta activación o ejecución sobrevive los reinicios?
Eric O Lebigot

Según la página del manual, sí, pero no lo he probado.
Stefan Schmidt

1
si /var/at/at.denyestá vacío, no necesita ser root para hacer cola en los trabajos, de lo contrario puede agregar su nombre de usuario /var/at/at.allow.
Stefan Schmidt

Debería leer las páginas de manual primero ... ¡Gracias!
polym

13

En Snow Leopard necesitas:

  1. Edite el /System/Library/LaunchDaemons/com.apple.atrun.plist, cambie el nodo secundario deshabilitado de true-> false.

  2. Descargar la corriente /System/Library/LaunchDaemons/com.apple.atrun.plistcon:

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

    Luego cargue la versión editada

    sudo launchctl load -F /System/Library/LaunchDaemons/com.apple.atrun.plist
    
  3. Prueba que funciona con:

    echo blah | at now+1
    
  4. En caso de que el eco falle por un motivo diferente, debería poder ver al menos que la cola se borre con:

    atq
    

1
Este es el único que funcionó para mí en OSX 10.10 Yosemite.
Colin Dean

5

Intenté esto en OS X Lion y parecía funcionar.

Primero habilite el atrundemonio:

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

Luego agregue [su nombre de usuario] a /var/at/at.allow.

Cuando se ejecute, recibirá la salida en /var/mail/[your username]

Creo que los elementos en cola batchtardan unos minutos en ejecutarse.


2

Otros han respondido acerca de ser deshabilitado en Mac OS X, y no lo sé, pero hay otro problema: ¿dónde espera que su comando echo imprima su mensaje? En otros sistemas Unix que he usado, no se imprime en la misma ventana de shell donde le dio el comando at . Recuerde que cuando se ejecuta el trabajo at , es posible que ya no esté conectado.

Intente escribir algo en un archivo y vea si ese archivo aparece en el momento adecuado.


La página del manual dice que la salida se le enviará por correo.
Stefan Schmidt

@Stefan: Sí, y eso funcionó bien en la década de 1980, cuando el correo se manejaba localmente en la misma máquina, pero mi experiencia (con otros tipos de Unix que Mac OS X) es que hoy en día no debes esperar recibir ningún correo.
Thomas Padron-McCarthy

0

Mi instalación de OS X (10.4) dice en man at:

NOTA
     at, batch, atq, atrm están desactivados por defecto en Mac OS X.

¿Ha habilitado de atrunacuerdo con las instrucciones allí?


Traté de encontrar dónde está atrun en mi Mac. Desde la web, otra opción es agregar un usuario a at.allow. No pude encontrar este archivo (at.allow) tampoco.
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.