Estamos ejecutando las pruebas que requieren de múltiples escritorios en un Mac Mini.
Estamos con éxito el uso de ssh, TCP túnel a localhost, 5900 al 6900, para hacer uso Compartido de Pantalla nos deja iniciar sesión en otros usuarios en esta misma máquina con vnc://user:password@localhost:6900 y algunos de Applescript para presionar el diálogo resultante botones. Puedo detectar el inicio de sesión con éxito a través de ssh que se ejecuta un programa en Java 1.7 con export AWT_TOOLKIT=CToolkit
que intenta abrir un AWT ventana que el usuario secundario, que no se si el escritorio no está iniciado.
Esto es bastante fiable, aunque me gustaría feliz de oír de los métodos más confiables!
Cuando las cosas van mal:
Estamos teniendo problemas en el registro de los robot de los usuarios, a salir de la máquina fresca de otras pruebas de que el objeto de toda la memoria desperdiciada por perdido los procesos de los usuarios dejar de correr.
Actualmente estoy usando
for i in $users ; do
ssh ${i}@localhost "osascript -e 'tell application \"System Events\"'
-e 'log out'
-e 'delay 3'
-e 'keystroke return'
-e end" &
done; wait
pero a veces System Events
al parecer no se está ejecutando y se niega a iniciar:
33:40: execution error: System Events got an error: Application isn't running. (-600)
Recientemente he añadido -e 'if it is not running then launch' -e 'delay 5'
inmediatamente antes de la -e 'log out'
pero eso no parece hacer mucho para ayudar.
Pensé que la sustitución de todos los que Applescript cosas con alguna variante de ssh kill -KILL -1
iba a funcionar - al menos como un back-up para la sujeción de los usuarios cuyas System Events
están rotos - pero deja un buen par de docenas de core services, PrivateFrameworks, y los Marcos de GUI-busca las cosas que ejecutan la mayoría de los que se niegan a morir incluso con kill -9
manual dirigido a sus PIDs. He intentado muy duro con dos etapas de secuencia de comandos, la captura de la salida de killall -s a un archivo y chorros en una segunda sesión de ssh.
Es allí una manera más confiable para el registro de estos usuarios y matar a todos los procesos? Tengo derechos de administrador en el cuadro, pero preferiría algo en la línea de comandos Unix para evitar escribir más doloroso de AppleScript para manipular la interfaz gráfica de usuario.
Gracias!