Para responder realmente a las preguntas que has hecho:
-
¿Puedo crear una aplicación Automator para iniciar y detener Tomcat cuando lo necesite?
Sí
-
¿Cuál es la forma correcta de hacer esto, o necesito AppleScript o algo así?
-
¿Y es posible hacer tanto el arranque como la parada en una sola aplicación de Automator?
-
¿Cuál es la forma correcta de crear una aplicación de Automator, o tengo que utilizar AppleScript?
Como normalmente hay más de una forma de hacer algo, vamos a abstenernos de usar "...la forma correcta de..." y mostrarte algunas opciones.
Si simplemente quiere ser capaz de cambiar el estado de Apache Tomcat es decir iniciar o Detener entonces se puede utilizar la siguiente línea de comandos en un Automatizador Flujo de trabajo de la aplicación utilizando un Ejecutar Shell script acción :
- En Automatizador crear un nuevo Flujo de trabajo de la aplicación .
- Añade un Ejecutar Shell script acción .
-
Ajustes : Shell: /bin/bash y Pasar la entrada: a stdin
Sustituir el código por defecto con la siguiente línea de código :
[[ $(/bin/ps aux | /usr/bin/grep [t]omcat) == "" ]] && /usr/local/bin/catalina start || /usr/local/bin/catalina stop
- Salvar el Automatizador Flujo de trabajo de la aplicación .
Este comando comprueba para ver si Apache Tomcat es corriendo y si no entonces comienza y si sí entonces se detiene lo Simplemente cambia el estado de Apache Tomcat . Es una solución sin complicaciones.
Una solución más sólida sería utilizar un Ejecutar AppleScript acción en su lugar.
- En Automatizador crear un nuevo Flujo de trabajo de la aplicación .
- Añade un Ejecutar AppleScript acción .
Utilice lo siguiente ejemplo AppleScript código en lugar del código por defecto :
try
set isRunning to (do shell script "/bin/ps aux | /usr/bin/grep [t]omcat")
on error number 1
set isRunning to missing value
end try
if isRunning contains missing value then
display dialog " Click the Start button to start Apache Tomcat." buttons {"Cancel", "Start"} ¬
default button 2 with title "Start Apache Tomcat"
do shell script "/usr/local/bin/catalina start"
else
display dialog " Click the Stop button to stop Apache Tomcat." buttons {"Cancel", "Stop"} ¬
default button 2 with title "Stop Apache Tomcat"
do shell script "/usr/local/bin/catalina stop"
end if
- Salvar el Automatizador Flujo de trabajo de la aplicación .
Esto también podría utilizarse en un AppleScript Aplicación creado en script Editor por sí mismo, sin necesidad de Automatizador . En cualquiera de los casos, cuando se ejecute se presentará uno u otro Cuadros de diálogo .
Esto le da la oportunidad de ver si es o no corriendo y cancelar si quieres en su lugar.
Nota: Con la excepción de la utilización de un try
declaración y un on error number 1
declaración no hay otro tratamiento de errores presentado en el ejemplo AppleScript código . Para más información tratamiento de errores como sea apropiado/necesario/querido, el usuario tiene la responsabilidad de añadir las tratamiento de errores para cualquier código de ejemplo presentado.
Además, el código de ejemplo El programa presentado aquí fue probado bajo una instalación limpia de MacOS 10.12.6 con herramientas de línea de comandos (MacOS Sierra versión 10.12) para Xcode-9.1, Homebrew, JDK 9.0.1, y apache-tomcat-8.5.23.tar.gz instalado. No veo ninguna razón por la que esto no funcionaría en MacOS 10.13 también.