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

7

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

¿Cómo puedo obtener esta funcionalidad de nuevo en Mavericks? No tiene que estar en el calendario (aunque, ¡grrr, me gustaría que aún funcionara! Me encantó tener un calendario que mostraba todas mis aplicaciones y los tiempos lanzados 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?

    
pregunta 2oh1 20.11.2013 - 05:23

4 respuestas

6

Lo bueno 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 lanzar automáticamente cada mañana a las 3:55 a.m. ¿Cómo?"

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

<?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 iniciar la aplicación SuprSetr a las 3:55 a.m. todos los días. (Nota: si la computadora está inactiva a las 3:55 a.m., se ejecutará cuando la computadora se despierte).

De ese ejemplo específico, una vez que entiendes que lo que hace este archivo plist es decirle a launchd que ejecute el comando de la Terminal:

/usr/bin/open -a SuprSetr

a la hora '3' y al minuto '55', entonces debería ser fácil extrapolar eso a otras aplicaciones que desee 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 (recomendaría no comprar la versión Mac App Store, ya que la aplicación me parece algo que a Apple no le va a gustar en el mundo del sandbox, y obtendría una aplicación más rica en funciones del desarrollador.

Mi preferencia personal es para una aplicación llamada LaunchControl , que puede probar de forma gratuita, y luego el desarrollador solicita 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 usan estén a la altura de la fe del desarrollador en ese sistema).

    
respondido por el TJ Luoma 21.11.2013 - 09:02
2

Parece que Apple ha eliminado la funcionalidad incorporada del calendario. Sin embargo, hay aplicaciones de terceros que pueden iniciar aplicaciones automáticamente en un momento específico.

Prueba Lingon : funciona en Mavericks ...

    
respondido por el Scot 20.11.2013 - 06:21
2

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

Alutilizar launchd , puede guardar una lista como esta, 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>

Luego ejecuta launchctl load ~/Library/LaunchAgents/openmail.plist .

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

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

open -jga abre una aplicación oculta y generalmente sin abrir ventanas. 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 .

    
respondido por el user495470 21.11.2013 - 08:20
0

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, que se llama Plisterine .

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

Puedesimplementeignorarelmensaje" La aplicación recibe archivos y carpetas como entrada ", ya que no es necesaria para este flujo de trabajo.

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

Funciona como un encanto y es fácil de configurar.

    
respondido por el hoffman 19.04.2016 - 08:46

Lea otras preguntas en las etiquetas