¿Puedo iniciar automáticamente una aplicación en un momento específico en Mavericks?

Durante años, he estado usando iCal para iniciar aplicaciones automáticamente usando alarmas. Crearía un nuevo evento en iCal y configuraría la alarma para iniciar una aplicación en lugar de mostrar una notificación. La opción de configurar alarmas para iniciar aplicaciones o URL (etc.) parece haber sido eliminada del Calendario en Mavericks, lo que significa que mis aplicaciones automáticas ya no se inician.

¿Cómo puedo recuperar esta funcionalidad en Mavericks? No tiene que estar en el Calendario (aunque, grrr, ¡ojalá eso todavía funcionara! ¡Me encantaba tener un calendario que mostrara todas mis aplicaciones y horas iniciadas automáticamente de un vistazo!).

Ejemplo: hay una excelente aplicación de Flickr llamada SuprSetr que me gustaría iniciar automáticamente cada mañana a las 3:55 am. ¿Cómo?

Respuestas (4)

Lo mejor de una pregunta específica es que se le puede dar una respuesta específica.

Por ejemplo, el OP dijo: "Hay una excelente aplicación de Flickr llamada SuprSetr que me gustaría iniciar automáticamente cada mañana a las 3:55 am. ¿Cómo?"

Respuesta: guarde lo siguiente como com.tjluoma.SuprSetr.plist(o el nombre que prefiera, pero debe terminar con .plist) y colóquelo en la carpeta ~/Library/LaunchAgents (donde ~ es su directorio de inicio):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>AbandonProcessGroup</key>
    <true/>
    <key>Disabled</key>
    <false/>
    <key>Label</key>
    <string>com.tjluoma.SuprSetr</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/open</string>
        <string>-a</string>
        <string>SuprSetr</string>
    </array>
    <key>StartCalendarInterval</key>
    <array>
        <dict>
            <key>Hour</key>
            <integer>3</integer>
            <key>Minute</key>
            <integer>55</integer>
        </dict>
    </array>
</dict>
</plist>

Y luego, una vez que el archivo esté en su lugar, debe ingresar este comando en la Terminal:

launchctl load ~/Library/LaunchAgents/com.tjluoma.SuprSetr.plist

Entonces estará listo para lanzar la aplicación SuprSetr a las 3:55 am todos los días. (Nota: si la computadora está inactiva a las 3:55 a. m., se ejecutará cuando la computadora se despierte).

A partir de ese ejemplo específico, una vez que comprenda que lo que plisthace este archivo es indicarle launchdque ejecute el comando Terminal:

/usr/bin/open -a SuprSetr

en la hora '3' y el minuto '55', entonces debería ser fácil extrapolar eso a otras aplicaciones que desea ejecutar en otros momentos.

Ahora, si desea escribir todo esto a mano, puede hacerlo de forma gratuita, pero una aplicación como Lingon es una buena opción (recomiendo no comprar la versión de Mac App Store, ya que la aplicación me parece algo que A Apple no le va a gustar el mundo del sandboxing, y obtendrás una aplicación más rica en funciones del desarrollador.

Mi preferencia personal es una aplicación llamada LaunchControl que se puede probar gratis, y luego el desarrollador pide algo razonable como US $ 10, pero no hay DRM, ni códigos de licencia, sino que se basa en el buen sistema de honor. (Espero que las personas que lo usen estén a la altura de la fe del desarrollador en ese sistema).

Parece que Apple ha eliminado la funcionalidad integrada de Calendario. Sin embargo, existen aplicaciones de terceros que pueden iniciar aplicaciones automáticamente en un momento específico.

Prueba Lingon -funciona en Mavericks...

Odio tener que comprar una aplicación para lograr algo que solía ser gratuito y estaba integrado en una aplicación tan básica como Calendar, pero parece que Lingon es lo que quiero. De hecho, su respuesta me llevó a una excelente información sobre launchd , lo que solo refuerza por qué Lingon es probablemente el camino a seguir. ¡Gracias!
Por supuesto. Sin embargo, Lingon es simplemente una GUI que permite editar fácilmente los scripts de inicio. Si está dispuesto, puede crear los archivos .plist directamente. Sin embargo, por unos pocos dólares, Lingon hace que la creación y edición de los archivos .plist sea mucho más fácil. Y, buena referencia que has vinculado a re: launchd.

La opción de abrir una URL en iCal en realidad se eliminó en Mountain Lion, pero ahora puede usar las alarmas de Calendario en su lugar:

Usando launchd , puede guardar un plist como este, por ejemplo ~/Library/LaunchAgents/openmail.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>openmail</string>
  <key>ProgramArguments</key>
  <array>
    <string>bash</string>
    <string>-c</string>
    <string>pgrep -x Mail||open -jga Mail</string>
  </array>
  <key>StartCalendarInterval</key>
  <dict>
    <key>Hour</key>
    <integer>3</integer>
    <key>Minute</key>
    <integer>55</integer>
  </dict>
</array>
</plist>

Entonces corre launchctl load ~/Library/LaunchAgents/openmail.plist.

Una tercera opción es ejecutar EDITOR=nano crontab -ey agregar una línea como esta:

55 3 * * * pgrep -x Mail||open -jga Mail

open -jgaabre una aplicación oculta y normalmente sin abrir ninguna ventana. Para algunas aplicaciones como Mail y TextEdit, crea y abre una nueva ventana predeterminada si la aplicación se está ejecutando pero no tiene ventanas visibles, pero puede usar pgrep para verificar si la aplicación se está ejecutando primero.

Si desea abrir la aplicación en primer plano, use solo open -a.

Tuve exactamente el mismo problema y encontré una aplicación en la tienda de aplicaciones que proporciona una interfaz gráfica de usuario para Launchd, se llama Plisterine .

Mi caso de uso fue almorzar Outlook para Mac en un momento específico, mantenerlo abierto durante una hora y luego cerrarlo nuevamente. Para esto, creé una aplicación/flujo de trabajo de Automator como se muestra en la siguiente captura de pantalla:

El flujo de trabajo de Automator

Simplemente puede ignorar el mensaje "La aplicación recibe archivos y carpetas como entrada ", ya que no es necesario para este flujo de trabajo.

Luego agregué una nueva entrada en Launchd usando Plisterine para que el flujo de trabajo de Automator se active según lo programado, vea la captura de pantalla a continuación:

Agregar una entrada en Launchd en Plisterine

Funciona de maravilla y es fácil de configurar.

Una pequeña adición, aquí está el enlace a Plisterine: itunes.apple.com/us/app/plisterine-launchd-for-rest/id634210019