Launchd
Archivo .plist
Puede crear un plist
que describirá el trabajo a realizar por launchd
a intervalos que puedes definir en el plist. Hay cierta terminología que es más fácil de aprender simplemente leyendo otro archivo plist, como el que he escrito a continuación.
Una vez hecho esto, puedes mover el archivo plist a ~/Library/LaunchAgents
que ejecutará el trabajo con su nombre de usuario.
Por último, consiga el launchd
daemon a load
su archivo de configuración, que iniciará el trabajo:
launchctl load chri.sk.launchd.plist
A partir de ese momento, el trabajo especificado en el archivo plist se llevará a cabo en los intervalos definidos, y seguirá realizándose para siempre, o hasta que unload
lo:
launchctl unload chri.sk.launchd.plist
Se iniciará automáticamente cada vez que se reinicie el sistema, y se reanudará si alguna vez se desactiva.
<?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>chri.sk.launchd</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/open</string>
<string>-a</string>
<string>TextEdit</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>Nice</key>
<integer>1</integer>
<key>StartInterval</key>
<integer>60</integer>
<key>StandardErrorPath</key>
<string>/Users/CK/Documents/launchd.err.txt</string>
<key>StandardOutPath</key>
<string>/dev/null</string>
</dict>
</plist>
Esto abre TextEdit cada 60 segundos. Aquí es una guía bastante útil para definir los intervalos.
Cualquier error se escribe en la ruta del archivo especificado por StandardErrorPath
.
Haga que el nombre del archivo y el label
el mismo valor. La convención de nomenclatura de Apple recomienda utilizar un identificador de nombre de host inverso, pero en ausencia de un nombre de dominio que le pertenezca, podría utilizar simplemente algo como surname.firstname.jobtitle
.
El launchd.plist
define todas las claves de la lista de propiedades y explica lo que hace cada una de ellas. Ir a Terminal y escriba man launchd.plist
.
AppleScript
property hour : 3600
property day : 86400
property RunEvery : day
property AppName : "An Application"
on run
idle
end run
on idle
tell application named AppName to activate
return RunEvery
end idle
on quit
continue quit
end quit
Si guarda este AppleScript como stay-open aplicación, y luego ejecutarla, se mantendrá abierta y ejecutará el idle
comandos todos los días. Actualmente, para impedir que este scriptcontinúe, tendría que terminarlo desde el muelle o Monitor de actividad .