3 votos

¿Cómo forzar la salida de un AppleScript script lanzado desde la barra de herramientas?

Tengo un AppleScript script (para lanzar MySQL) que ejecuto desde el menú de la barra de herramientas de AppleScript. Hace el trabajo (lanza MySQL), sin embargo el script no parece salir. Y la rueda dentada de la barra de herramientas sigue girando.

Gearwheel keeps rotating

Al hacer clic en la rueda dentada puedo pulsar el botón de cierre 'x' de ese script, pero no hace nada. No hay procesos congelados en el Monitor de Actividad.

¿Cómo puedo "forzar la salida" de ese script?

P.D. Alguien preguntó cuál es el script, aquí está:

do shell script "sudo /usr/local/mysql/support-files/mysql.server start" with administrator privileges

0 votos

¿Cuál es el script?

0 votos

@Tetsujin Lo he añadido a la descripción de la pregunta.

1 votos

OK, así que lo configuraste como un shell script - por lo tanto esperará hasta que la aplicación que lanzó se cierre, antes de pasar a la siguiente línea. En realidad no sé cómo evitar eso.

1voto

moodforaday Puntos 2633

Bien, en primer lugar, cuando se utiliza AppleScript "con privilegios de administrador" no se debe utilizar sudo

En segundo lugar, debe enviar el trabajo a un segundo plano si quiere que el AppleScript termine.

La forma más fácil de hacerlo es poner el comando en un shell script, así:

#!/bin/zsh -f

/usr/local/mysql/support-files/mysql.server start &|

exit 0

(Obsérvese el &| al final de la línea. Eso le dice al proceso que pase al "fondo")

Guarde esas 3 líneas en un archivo llamado algo así como /usr/local/bin/start-mysql-server.sh y luego hacer

chmod 755 /usr/local/bin/start-mysql-server.sh

para que sea ejecutable.

Por último, cambie su AppleScript por

do shell script "/usr/local/bin/start-mysql-server.sh" with administrator privileges

y debe lanzar y entonces el engranaje debería desaparecer.

1 votos

¿cómo se detiene la ejecución de script?

1 votos

Necesitarías un script separado para detenerlo.

0voto

maxpenguin Puntos 1488

Yo lo haría:

  1. Terminal abierto
  2. Tipo ps aux|grep mysql
  3. obtener el PID del script
  4. Tipo kill -s 9 #### donde #### es el PID del script

Yo comprobaría que no matas el proceso equivocado, como por ejemplo otro servidor mysql.

0 votos

podría utilizar algunos smarts para comprobar el exacto script que está ejecutando, pero lo anterior es muy fácilmente scriptable.

0 votos

qué es -s 9 ? ¿Es lo mismo que -9 ?

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