Como ejemplo, lo siguiente comandos puede utilizarse en un shell script para lograr lo que has expresado.
/usr/bin/open -na "/Applications/Safari.app" "https://www.google.com/"
pid=$(/usr/bin/pgrep -xn "Safari")
/bin/sleep 600
/bin/kill $pid
Obviamente se cambiaría el valor de la URL en el open
comando .
open -na
- Suponiendo que otra instancia del aplicación de destino se está ejecutando, abre una nueva instancia del aplicación de destino y si no, simplemente abre el aplicación de destino .
pgrep -xn
- Obtiene el pid
de la instancia más reciente del aplicación de destino para que sepas qué instancia debes terminar.
sleep 600
- Duerme durante 10 minutos.
kill $pid
- Terminar el proceso por su pid
.
Desde el página del manual para crontab
:
(Nota de Darwin: Aunque cron(8) y crontab(5) están oficialmente soportados en Darwin, su funcionalidad ha sido absorbida por launchd(8), que proporciona una forma más flexible de ejecutar automáticamente los comandos. Consulte launchctl(1) para más información).
Menciono esto porque personalmente prefiero usar launchd
en cron
ya que es el método preferido que Apple respalda.
Si desea utilizar cron
, echa un vistazo a Programación de trabajos con Crontab en MacOS y gurú del crontab .
He probado un shell script con lo anterior comandos y lo activó tanto como cronjob
y como agente de lanzamiento en MacOS Catalina y me ha funcionado tal y como está codificado.
Para crear el crontab
Hice lo siguiente en Terminal :
EDITOR=nano crontab -e
- Utilizo eso en lugar de sólo
crontab -e
porque prefiero nano
sobre el valor por defecto vim
.
En nano
He añadido lo siguiente:
30 18 * * * /usr/local/bin/codetest
Luego presionó ^O para ahorrar y ^X para cerrar nano
.
Como el conjunto, cron
corrió el trabajo a las 18:30 ejecutando el /usr/local/bin/codetest
y codetest
tenía un #!/bin/zsh
shebang y el comandos arriba, al principio de esta respuesta, en ella.
Notas:
Le recomiendo que lea el páginas del manual para cron
y crontab
. Puede leer el página del manual para command
en Terminal tecleando command
y luego haga clic con el botón derecho del ratón y seleccione: Abrir la página del hombre
Desde Programación de trabajos con Crontab en MacOS :
La configuración de las tareas cron requiere un formato específico.
* * * * * command
* - minute (0-59)
* - hour (0-23)
* - day of the month (1-31)
* - month (1-12)
* - day of the week (0-6, 0 is Sunday)
command - command to execute
(from left-to-right)
También puede utilizar sitios como Crontab.guru para generar expresiones cron.
Para launchd
, echa un vistazo: Creación de Daemons y Agentes de Lanzamiento
Como agente de lanzamiento , en Terminal :
cd "$HOME/Library/LaunchAgents/"
touch com.me.new.instance.safari.plist
open -e com.me.new.instance.safari.plist
Luego añadí lo siguiente:
<?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>Label</key>
<string>com.me.new.instance.safari</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/codetest</string>
</array>
<key>RunAtLoad</key>
<false/>
<key>StartCalendarInterval</key>
<array>
<dict>
<key>Hour</key>
<integer>18</integer>
<key>Minute</key>
<integer>45</integer>
</dict>
</array>
</dict>
</plist>
Salvó la documento y luego de vuelta en Terminal :
launchctl load com.me.new.instance.safari
Luego, a las 18:45 launchd
ejecutó la /usr/local/bin/codetest
shell script .
Notas:
Le recomiendo que lea el páginas del manual para launchctl
, launchd.plist
y launchd
. Puede leer el página del manual para command
en Terminal tecleando command
y luego haga clic con el botón derecho del ratón y seleccione: Abrir la página del hombre
Una vez cargado, se cargará automáticamente cuando accedas a tu cuenta, por lo que no deberías tener que volver a hacerlo manualmente en circunstancias normales. Para descargarlo, utilice el botón unload
subcomando con el launchctl
comando .
Después de descargarlo, puede utilizar el disable
subcomando para que no se vuelva a cargar o puedes borrar el archivo . plist
archivo Si quieres deshacer los cambios que has hecho en tu sistema .