macos - Applescript falla con error(-600) cuando se inicia sobre ssh en Mavericks
osx-mavericks (9)
¡Arrrrgh! No quiero que esta sea la respuesta, pero después de probar casi todo, esto ahora parece estar funcionando después de un reinicio ... Creo que algo en Appleeventsd se confundió (aunque reiniciar Appleeventsd solo no lo hizo) t arreglar nada). Después de un reinicio osascript parece estar comportándose de nuevo. Todavía no estoy convencido de que esto esté completamente solucionado, pero parece estar funcionando por el momento ...
He intentado buscar esto y he visto a otros con problemas similares, pero no parece haber encontrado una respuesta en ningún lugar ...
Tengo un AppleScript que estoy intentando ejecutar en ssh para poder controlar mi mac de forma remota. Esto ha funcionado anteriormente con OSX 10.8, pero ya no parece funcionar desde la actualización a 10.9.
El comando que estoy ejecutando es:
ssh <user>@mymac.local "osascript -e ''tell application /"iTunes/" to play''"
- Ya he configurado las claves RSA para que la sesión ssh se abra correctamente
- Me estoy conectando como el mismo usuario con el que Mac está actualmente conectado y ejecutándose bajo
- iTunes se ejecuta en la Mac con ese usuario en el momento en que se inicia el script
El script falla, regresando con:
execution error: iTunes got an error: Application isn’t running. (-600)
De manera similar, una serie de otros scripts que había estado usando anteriormente también parecen estar dañados en 10.9 con el mismo error, por lo que parece estar relacionado con el hecho de que se está ejecutando sobre ssh, en lugar de un problema con iTunes o un problema específico. solicitud.
He intentado empaquetar los archivos de Apple como aplicaciones, guardarlos en el Mac remoto y luego abrirlos desde una sesión ssh, pero esto también falla:
ssh <user>@mymac.local
open "~/Desktop/Play Music.app"
(Donde ''Play Music.app'') es un applecript exportado como una aplicación).
Esto no informa un error dentro de la sesión ssh, pero aparece un cuadro de diálogo de AppleScript en el mac remoto:
También tengo varios scripts programados con crontab en mi Mac, y estos también fallan desde la actualización.
Supongo que esto es una especie de cambio de seguridad como parte de los Mavericks, pero parece que no puedo encontrar una manera de hacerlo funcionar de nuevo. ¿Alguien tiene alguna solución a esto?
Apple Script no es el problema.
Habilite el acceso para dispositivos y aplicaciones de asistencia abriendo Preferencias del sistema> Seguridad y privacidad> Privacidad> Accesibilidad y marque las aplicaciones a las que desea permitir el acceso.
Más información: https://support.apple.com/en-us/HT202866
Jacob Salmela también ha creado una utilidad para hacer esto desde la línea de comandos:
http://jacobsalmela.com/os-x-yosemite-enable-access-assistive-devices-command-line/
El código de @benmarbles parece faltar algo al final de la línea 2, ni siquiera compilará.
De todos modos, he visto el mismo problema con "Eventos de imagen" y lo resolví con una versión simplificada de ese script. Así es como lo manejo:
tell application "System Events" to set thePID to (unix id of process "Image Events")
set killCMD to ("kill -9 " & thePID) as text
do shell script killCMD with administrator privileges
Reemplace los Image Events
con Image Events
System Events
para terminar ese proceso. El proceso de eventos del sistema se mantiene vivo, por lo que no hay necesidad de hacer nada para relanzarlo.
Los eventos del sistema son un componente muy delicado de OS X. Aquí está mi método para solucionar el temido error "La aplicación no se está ejecutando -600":
set app_name to "System Events"
set the_pid to (do shell script "ps ax | grep " & (quoted form of app_name) & "$
if the_pid is not "" then do shell script ("kill -9 " & the_pid)
tell application "System Events"
-- activate
end tell
Maté "Eventos del sistema" con un kill -9 y luego lo reinicié.
Me confundió este mensaje "para eventos del sistema" que no funciona en las versiones más recientes de Mac OS X desde la línea de comandos:
osascript -e ''tell application "System Events" to display dialog "Build finished"''
Resulta que la sintaxis de Applescript es (¿cambiada a?) Solo:
osascript -e ''display dialog "Build finished"''
Para mí, fueron los derechos de Apple en Xcode.
Específicamente,
com.apple.security.temporary-exception.apple-events
Establecer como una matriz
A continuación, agregue dos elementos a la misma.
com.apple.finder
com.apple.iTunes
Ver: Mi Applecript ya no funciona cuando actualizo mi OS X a 10.9
Recibí el mismo error cuando no pude realizar las secuencias de comandos GUI, pero al cambiar las Preferencias del sistema> Seguridad y privacidad> Privacidad> Configuraciones de accesibilidad para esa aplicación específica y agregar un delay 0.5
entre cada línea, ¡lo corregí!
para mí esto sucedió cuando intenté abrir gitk
. Cambiando de nuevo a la rama en la que estaba antes, y gitk
pudo abrir de nuevo
Application isn''t running(-600)
es un error del sistema operativo .
Un error del sistema operativo es un error que se produce cuando AppleScript o una aplicación solicita servicios del sistema operativo Mac. Son raros y, a menudo, no hay nada que pueda hacer al respecto en un script, aparte de informarlos .