¿Cómo puedo ejecutar / detener / reiniciar una aplicación automática, en el arranque / login / en otro momento?
-
16-10-2019 - |
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.?
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
- Haga clic en el símbolo
- En el muelle, que aparezca el menú contextual para una aplicación, seleccione
Options
, a continuación, seleccioneOpen 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 ??li>
- 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 conlaunchd
- 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
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"
No se olvide Loginhooks.
A pesar de que se ejecutan como root, usted debería ser capaz de tener que ejecutar un / .loginhook guión $ HOME usar algo como esto:
#!/bin/sh
home=`eval echo ~$user`
if [ -x "$home/.loginhook" ]; then
logger -t $0 "executing .loginhook of user $user"
su - $user -c "$home/.loginhook"
fi
A continuación, sólo tiene que añadir cualquier comando que desea el ~ / .loginhook
Además, aunque 'launchd' es "el camino Mac" crontab sigue siendo una opción perfectamente viable, y es mucho más fácil de editar a mano que los archivos XML launchd.
En lo personal, yo felizmente pagado $ 5 para Lingon .
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!
- Crear un nuevo evento en iCal para el tiempo que desea que la aplicación se abra.
- 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
- 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 ...
- 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á.
- 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'.
- 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 /