0 votos

No se puede activar un applescript por ssh a una mac de red

Me encuentro con un problema molesto en mi instalación doméstica que implica que un mac Servidor avise a un mac Cliente de que una tarea (una tarea de copia de seguridad) se ha ejecutado con éxito. El propósito de esta instrucción es desencadenar (a través del software de automatización del mac Cliente) el apagado de la fuente de alimentación del disco de respaldo, para ahorrar energía. Ambos macs están ejecutando high Sierra y el mac Cliente debe ejecutar el siguiente applescript al recibir la instrucción apropiada del Servidor (xtension.app es un software de automatización del hogar que tiene interfaz applescript pero no interfaz shell script).

sPowerDownD2.scpt ("apple_script")

Tell application "xTension"
execute script "TurnOffD2"
end Tell

El applescript anterior, situado en cualquier directorio del mac del cliente, funciona cuando se dirige manualmente y de forma local: Puedo activarlo (1) localmente en el mac del Cliente a mano sobre el applescript o (2) funciona mediante un comando manual local a un shell script ubicado en un directorio del mismo mac del Cliente cuyo trabajo es activar el applescript o (3) mediante la siguiente línea de comando en terminal ("shellScript") .

osascript /ruta_al_script_de_la_manzana/script_de_la_manzana

Para activar el applescript desde el mac del Servidor (lejos del mac del Cliente), he probado primero un ssh shell script teniendo privilegios de Root en ambas máquinas

ssh -i /var/root/.ssh/jxxxxxx_rsa root@iMacdexTension.local

Este script funciona cuando se le pide que ejecute tareas sencillas en el mac del cliente (como listar los archivos que se ven en un directorio), pero falla cuando se usa para activar el applescript anterior, directamente usando osascript o indirectamente.

Ejemplo: cualquier intento de activar indirectamente el applescript a través de un comando shell script falla.

ssh -i /var/root/.ssh/jxxxxxx_rsa root@iMacdexTension.local /path_to_shellScript/shellScript

MENSAJE DE ERROR AL FALLAR Falla con el código de error : "Error de ejecución: Se ha producido un error de tipo -10829. (-10829)

Segundo ejemplo: cualquier intento de activar directamente el applescript también falla.

ssh -i /var/root/.ssh/jxxxxxx_rsa root@iMacdexTension.local osascript /path_to_apple_script/apple_script

MIS INTENTOS DE CORREGIR

He verificado los permisos de los archivos y directorios (también he probado diferentes combinaciones)

También he intentado corregir los posibles problemas de privilegios y, para ello, he intentado utilizar el comando shell recomendado

contraseña " pswd " con privilegios de administrador

Haga lo que haga, lo mejor que consigo es el mensaje de error -10829..

¿Qué podría hacer mal?

Gracias de antemano por cualquier sugerencia o duda.

3voto

Steve Evans Puntos 155

Sesión gráfica de usuario

El AppleScript no se está ejecutando dentro de la sesión gráfica activa del usuario y por lo tanto no puede acceder al WindowServer. Esto es necesario para que los lenguajes de la arquitectura de scripting abierta (OSA) interactúen con las aplicaciones gráficas.

Si puede realizar su script sin necesidad de interactuar con una aplicación gráfica, un ssh El enfoque iniciado puede funcionar.

De lo contrario, considere una herramienta de terceros, como Gestor de energía que puede ejecutar scripts como usuario activo. Soy un ingeniero detrás de Power Manager, así que no dudes en ponerte en contacto y hacer cualquier pregunta técnica sobre su funcionamiento.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X