Soy nuevo en OS X y estoy tratando de crear un contenedor de aplicaciones para un script de shell que inicia un servidor de medios (Red5)
Estoy tratando de envolver el script de inicio del servidor Red5 ( red5.sh
) en un .app
ejecutable usando Platypus .
La Documentación Ornitorrinco dice que
Puede agregar una lista de archivos para copiar en la carpeta Recursos de su paquete de aplicación. Estos archivos pueden ser utilizados por su secuencia de comandos. El directorio de trabajo actual predeterminado de su secuencia de comandos será esta carpeta, por lo que debería poder acceder a ellos directamente desde el CWD de su secuencia de comandos.
Cuando se ejecuta normalmente desde la terminal (está usando ./red5.sh
), el servidor se inicia bien, pero cuando creo el .app
archivo (después de haber configurado el CWD del script en el campo "Archivos para agrupar" de Platypus, el .app
archivo resultante no se ejecuta cuando se duplica se hizo clic en.
Da el siguiente error
Error: Could not find or load main class
No estoy seguro de lo que estoy haciendo mal, pero creo que tiene algo que ver con la agrupación del directorio correcto.
Tuve un problema similar al intentar ejecutar un servidor de aplicaciones web basado en Java. Para mí, el problema resultó ser que mis variables de entorno (en particular, JAVA_HOME
) no se estaban configurando, lo que se debe a que la instancia de Bash (o el shell que use) no comienza como un shell de inicio de sesión O un Shell interactivo, por lo que la secuencia de comandos de su perfil (p. ej. ~/.profile
, ~/.bashrc
, etc.) no se ejecuta automáticamente.
Para mí, la solución fue agregar lo siguiente a mi script:
source ~/.profile
El source
comando hace que los comandos ~/.profile
se ejecuten en el shell actual; de esta manera, las variables de entorno que establece ese script estarán disponibles para la instancia de Bash que inicia ornitorrinco.
Tenga en cuenta que es importante que no solo ejecute el archivo de perfil como un script de shell en sí mismo; eso hará que se ejecute en su propio shell, que saldrá inmediatamente después; cualquier variable que establezca dejará de existir tan pronto como salga. Es por eso que tenemos que usar el comando fuente.
Como alternativa, puede configurar las variables de entorno necesarias directamente en su secuencia de comandos.
¡Espero que esto ayude!