¿Puedo crear una aplicación Automator para iniciar Tomcat cuando lo necesite?

Puedo iniciar Apache Tomcat (instalado a través de HomeBrew) en la Terminal usando

$ catalina run 

Pero no funciona en un script de Shell de la aplicación Automator usando bash

  • Resultados incoherentes al get el tamaño de la carpeta en AppleScript
  • La acción de carpeta actúa sobre files no especificados en el flujo de trabajo
  • Mensaje de error de El Capitan Apache AH00526
  • ffmpeg trabajando desde la command-line en la Terminal pero no en una secuencia de commands de shell de Automator!
  • ¿Dónde puedo encontrar una list de MAMP?
  • Automator y AppleScript: ¿Cómo importo los texts de Notas y Recordatorios como PDF y RTF?
  • Intenté configurar un script de Shell bash en Automator de esta manera:

     catalina run 

    Cuando ejecuto la aplicación Automator, no funciona y muestra -: catalina: command not found .

    ¿Cuál es la forma correcta de crear una aplicación Automator, o necesito usar AppleScript?

  • Conceder derechos sobre un certificate a una aplicación a través del shell
  • Problemas al ejecutar MySQL en OS X 10.9.5
  • Determinar cuándo se lanzó una aplicación por última vez
  • Usando barrica y luego brew install
  • ¿Cómo eliminar barriles obsoletos de Homebrew?
  • ¿Cómo elimino permanentemente el fontbook de Mac (Sierra OS)?
  • 2 Solutions collect form web for “¿Puedo crear una aplicación Automator para iniciar Tomcat cuando lo necesite?”

    Para responder realmente a las preguntas que hizo:

    • ¿Puedo crear una aplicación Automator para iniciar y detener Tomcat cuando lo necesite?

    • ¿Cuál es la forma correcta de hacerlo, o necesito AppleScript o algo por el estilo?

    • ¿Y es posible hacer tanto iniciar como detener en una aplicación Automator?
    • ¿Cuál es la forma correcta de crear una aplicación Automator, o necesito usar AppleScript?

    Dado que generalmente hay más de una forma de lograr algo, dejemos de usar "… la forma correcta de …" y le mostraremos algunas opciones.

    Si simplemente desea poder alternar el estado de Apache Tomcat , es decir, iniciarlo o detenerlo , la siguiente línea de command se puede usar en un flujo de trabajo de la Aplicación Automator utilizando una acción Ejecutar Script de Shell :

    • En Automator , cree un nuevo flujo de trabajo de Aplicación .
    • Agregue una acción Ejecutar script de shell .
      • Configuración : Shell: / bin / bash y input de Pass: to stdin

    Reemplace el código pnetworkingeterminado 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 
    • Guarde el flujo de trabajo de la aplicación Automator .

    Este command verifica si Apache Tomcat se está ejecutando y si no , luego lo inicia , y si es así, entonces lo detiene . Simplemente alterna el estado de Apache Tomcat . Es una solución sin lujos.


    Una solución más robusta sería usar una acción Ejecutar AppleScript en su lugar.

    • En Automator , cree un nuevo flujo de trabajo de Aplicación .
    • Agregue una acción Ejecutar AppleScript .

    Utilice el siguiente código AppleScript de ejemplo en lugar del código pnetworkingeterminado :

     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 
    • Guarde el flujo de trabajo de la aplicación Automator .

    Esto también podría usarse en una aplicación AppleScript , creada en Script Editor , por sí misma sin necesidad de Automator . En cualquier caso, cuando se ejecuta, se le presentará uno u otro cuadro de dialog .

    Comience Apache Tomcat Detener Apache Tomcat

    Esto le da la oportunidad de ver si se está ejecutando y cancelar si lo desea.


    Nota: Con la exception de usar una instrucción try y una instrucción on error number 1 , no hay otro event handling errores presentado en el código AppleScript de ejemplo . Para un event handling error adicional que pueda ser apropiado / necesario / deseado, el usuario tiene la responsabilidad de agregar el event handling error adicional apropiado para cualquier código de ejemplo presentado.

    Además, el código de ejemplo presentado en este documento fue probado bajo una installation limpia de macOS 10.12.6 con herramientas de command-line (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 cual esto tampoco funcionaría en macOS 10.13.

    Cuando ejecuta un command de shell o una secuencia de commands en Automator, se pasa la RUTA pnetworkingeterminada de su sistema, no la que está en su perfil de bash. Esta es la razón por la cual bash no puede encontrar el command catalina .

    Siempre debe especificar la ruta completa al command en los scripts de shell. Si se instaló a través de HomeBrew, probablemente sea /usr/local/bin/catalina pero puede confirmarlo ejecutando which catalina en una session de terminal.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).