Inicie la aplicación periódicamente con Automator


3

¿Cómo puedo iniciar una aplicación en Automator periódicamente, como en intervalos de 15 minutos?

Respuestas:


3

También puede usar AppleScript en su lugar ( /Applications/Utilities/AppleScript\ Editor.app/).

El siguiente script inicia Terminal.app cada siete segundos:

on idle
    tell application "System Events"
        tell application "Terminal"
            run
        end tell
        return 7
    end tell
end idle

Guarde este script como una aplicación y déjelo "permanecer abierto después del controlador de ejecución".


Gracias, esto ayuda! ¿Qué sucede si la aplicación ya se está ejecutando y está trabajando? ¿Será interrumpido?
Zoltán Matók

Probé su solución y funciona, más o menos ... En la aplicación de Mac que intento ejecutar pongo un método [NSApp terminate: self] para que se cierre solo después de que su trabajo esté hecho. Cuando ejecuto el script, inicia con éxito las aplicaciones y hará su trabajo y se cerrará. Cuando la secuencia de comandos se active de nuevo, arrojará un error de "conexión no válida", que, como leí, significa que la secuencia de comandos intentó comunicarse con una aplicación que dejó de ejecutarse mientras se ejecutaba la secuencia de comandos. ¿Cómo puedo evitar esto?
Zoltán Matók

@ ZoltánMatók Lo siento, pero no puedo seguir exactamente el problema que estás describiendo. ¿Por qué el Script de Apple activaría este error de conexión? He estado usando variaciones de este script de Apple para diferentes aplicaciones sin problemas. Por lo tanto, espero que el problema se encuentre dentro de la aplicación de Mac descrita. ¿Quizás debería abrir una pregunta por separado sobre Stackoverflow?
gentmatt

1
Gracias, lo hice! Aquí está el enlace si está interesado apple.stackexchange.com/questions/66007/…
Zoltán Matók

@ ZoltánMatók Sí, ya lo encontré;) Lo voté tan pronto como lo vi.
gentmatt

1

Con launchd, puede guardar la lista de propiedades a continuación como ~/Library/LaunchAgents/com.stackexchange.apple.65970.plist, y luego cargarla con launchctl load ~/Library/LaunchAgents/com.stackexchange.apple.65970.plisto al cerrar sesión y volver a iniciarla.

<?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>com.stackexchange.apple.65970</string>
    <key>ProgramArguments</key>
    <array>
        <string>open</string>
        <string>-jga</string>
        <string>Mail</string>
    </array>
    <key>RunAtLoad</key>
    <true/> <!-- run before the first 15 minutes have passed -->
    <key>StartInterval</key>
    <integer>900</integer>
</dict>
</plist>

open -gabre una aplicación en segundo plano, pero aún abrirá una ventana visible si la aplicación no se estaba ejecutando antes. -jtambién oculta la aplicación si no se estaba ejecutando. Se agregó en 10.8 y solo se muestra en el mensaje de ayuda.

También puede agregar una línea como esta a un crontab:

*/15 * * * * open -jga Mail

Genial, esto se ve genial. ¿Cómo lograría que la aplicación se cerrara después de 5 minutos y luego reiniciara nuevamente? Estoy preguntando sobre el lanzamiento de Google Drive Sync Client para Mac. Utiliza mucha memoria. Así que quiero sincronizar, dejarlo y luego esperar 30 minutos para volver a hacerlo.
Ivan
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.