Es allí una manera de conseguir una definida por el usuario launchd tarea (es decir, como el que en esta pregunta) para obtener la confirmación del usuario antes de ejecutar la tarea? Una ventana emergente como la de el sueño programado (con sí/no y un temporizador en caso de que el usuario no de entrada) sería genial, de lo contrario un simple sí/no emergentes.
Respuestas
¿Demasiados anuncios?Hacer launchd llamar a este AppleScript. Se muestra un cuadro de diálogo con un tiempo de espera y llama a un script de shell si el usuario selecciona "Aceptar".
set timeoutInSeconds to 60
set abortOnTimeout to true
tell application (path to frontmost application as text)
try
set dialogResult to display dialog "Do you want to execute?" default button 2 giving up after timeoutInSeconds
on error number -128
return
end try
end tell
if gave up of dialogResult and abortOnTimeout then
return
end if
do shell script "/path/to/yourscript.sh"
Launchd agentes se les permitió interactuar con la interfaz gráfica de usuario, e incluso los demonios pueden usar osascript para mostrar los cuadros de diálogo.
Usted también podría usar algo como esto en un script de shell:
osascript -e 'tell app (path to frontmost application as text)'
display dialog "Continue?"
end' || exit 0
La secuencia de comandos se cierra con un error si el usuario presiona el botón cancelar o cierra el cuadro de diálogo. También podría decirle a un proceso en segundo plano como SystemUIServer para mostrar el cuadro de diálogo, pero tendrías que añadir algo como activate application (path to frontmost application as text)
a mover el foco a la anteriormente centrado ventana.