¿Cómo puedo ejecutar / detener / reiniciar una aplicación automática, en el arranque / login / en otro momento?

apple.stackexchange https://apple.stackexchange.com/questions/3030

Pregunta

¿Cómo se hace un guión o aplicación a ejecutar o detener a ejecutarse automáticamente cuando se arranca el sistema, un usuario se conecta, en un momento determinado, cuando se monta un disco, etc.?

¿Fue útil?

Solución

Gui Método

Si quieres algo para ejecutarse cuando un usuario se conecta, la forma más fácil es usar la interfaz gráfica de usuario. Usted puede

  • Vaya a la pantalla System Prefs > Accounts > Login Items, y añadir el artículo allí
    • Haga clic en el símbolo +
    • arrastrando y soltando el .app en el panel
  • En el muelle, que aparezca el menú contextual para una aplicación, seleccione Options, a continuación, seleccione Open at Login

Launchd método

Si usted quiere poner en marcha algo que no es un .app, o desea tener más control sobre su lanzamiento, como por ejemplo:

  • en un momento determinado o en un intervalo
  • especificado
  • continua relanzamiento si se bloquea
  • No se relaciona con el usuario de inicio de sesión
  • como una función de acceso a la red
  • sólo se ejecutan cuando otro proceso está en ejecución
  • cuando un archivo se añade a una carpeta
  • etc.

A continuación, desea utilizar el solución técnica que es launchd.

La forma más fácil de configurar un archivo de configuración launchd es utilizar una herramienta de ayuda. En el momento de escribir el método más popular es Lingon (que tiene una versión más antigua libre disponible en SourceForge), o el herramienta pLIST sitio web .

Mano de codificación

Si no desea utilizar Lingon o el Sitio Web PLIST y sólo desea utilizar las herramientas primas disponibles en el sistema, usted puede escribir su propia launchd plist a mano

Aquí está mi script para ejecutar launchd SomeApp continua después de arrancar el sistema (independientes de un usuario que entra). Es en / System / Library / LaunchAgents / llamada y SomeApp.restart.plist. Si se ejecuta basa en un inicio de sesión de usuario, que podría ser almacenado en ~ / Library / LaunchAgents /

<?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>RunAtLoad</key>  
        <true/>
        <key>KeepAlive</key>
        <true/>
        <key>Label</key>
        <string>SomeApp.restart</string>
        <key>ProgramArguments</key>
        <array>
                <string>/path/to/SomeApp.app/Contents/MacOS/SomeApp</string>
        </array>
        <key>StartCalendarInterval</key>
        <dict>
            <key>Hour</key>
            <integer>5</integer>
            <key>Minute</key>
            <integer>10</integer>
       </dict>
</dict>
</plist>

cargarlo una vez con

launchctl load ~/Library/LaunchAgents/SomeApp.restart.plist
  • La opción RunAtLoad pondrá en marcha la aplicación de la primera launchctl tiempo funciona esto.
  • La opción KeepAlive volverá a iniciar la aplicación si se bloquea.
  • El StartCalendarInterval lo ejecutará en un momento determinado. Presumiblemente, esto es mutuamente excluyente con los dos anteriores, pero se incluye para mostrar lo que se puede hacer con launchd
  • launchctl funcionará esto después de reinicios.

Hay muchas opciones adicionales que se pueden encontrar mediante la experimentación con Lingon o mediante la lectura de las páginas del manual para launchctl, launchd.plist, plist, launchd.conf, etc.

Otros consejos

Lingon todavía funciona. Acabo de utilizar la semana pasada para crear una "tarea programada". Después de lo descargué tuve que usar su auto-actualizador para obtener la última versión, pero funciona bien.

Si sólo es necesario ejecutar cuando se arranca el sistema, sólo tiene que utilizar el href="http://www.apple.com/pro/tips/login_items.html" rel="noreferrer"> sesión pestaña

text alt

Si se trata de una escritura, el uso de AppleScript Editor para guardarlo como una aplicación. Si no es un script AppleScript, todavía se puede utilizar AppleScript para ejecutar el script como el siguiente:

do shell script "your script here"

Ejecución de una aplicación en un momento determinado se puede hacer fácilmente en iCal, como lo acaba de descubrir, gracias a otro foro!

  1. Crear un nuevo evento en iCal para el tiempo que desea que la aplicación se abra.
  2. A 'Alerta' elija 'Abrir archivo' -. Por lo tanto, se puede establecer un archivo para abrir, lo que obviamente también abrir la aplicación por defecto para ese tipo de archivo
  3. Para basta con abrir una aplicación, en lugar de un archivo, cambiar el 'iCal' desplegable a 'Otros ...' y seleccione la aplicación que desea ejecutar!

Una cosa a tener en cuenta es que si usted tiene múltiples Macs que comparten cosas sobre iCloud, este evento también se ejecutará en esas aplicaciones, que puede o no querer. Para que esto suceda únicamente en un solo Mac, es necesario crear el evento en el calendario una 'En mi Mac', que se puede hacer de la siguiente manera ...

  1. Ocultar todos los demás iCloud o calendarios compartidos en la barra de la izquierda colocando el cursor sobre el nombre del calendario y haciendo clic en el botón 'ocultar' que aparecerá.
  2. Ahora haga clic derecho (o clic opción si eres un cretino completa y todavía no se ha dado cuenta que tiene más de un dedo y puede cambiar sus preferencias del ratón para que sea un poco más útil que su valor por defecto 'ladrillo para cretina estado) y seleccione 'cretinos Nuevo Calendario'.
  3. Debido a que todos los calendarios compartidos están ocultos, este nuevo calendario se creará como 'En mi Mac' y será local a este Mac.

he hecho más que descubrió esto a mí mismo, y me sorprendió gratamente por las dos puntas, por lo que pensé en compartir aquí.

me dio la información a partir de estas personas útiles por aquí ... así que gracias ustedes! ...

http: // osxdaily .com / 2013/04/15 / programada-lanzamiento-archivo-app-fecha-mac-os-x /

Licenciado bajo: CC-BY-SA con atribución
No afiliado a apple.stackexchange
scroll top