Tengo una aplicación (código cerrado herramienta no desarrollado por mí), que requiere otro proceso para existir antes de ejecutar correctamente. Cuando yo salga de esta aplicación, también quiero que la medida a ser asesinados. Mi solución es tener un script de shell "launcher". Puedo manejar la creación de shell de comandos de los menús, el evento de cierre y de apertura/la matanza de los procesos. El problema es que me parece que no puede averiguar cómo abrir una aplicación desde la Terminal, pero mantener Terminal bloqueado en esa aplicación, de forma que al cerrar la ventana de Terminal o enviar CTRL+C se cierra la aplicación. Si estás familiarizado con Linux, un ejemplo sencillo de mi comportamiento deseado es sólo "gedit file.txt". El editor de texto abrir, pero sólo en la vida mientras la ventana de terminal.
En OSX con el comando "open", me pueden iniciar aplicaciones, pero que no están vinculados a la ventana de Terminal. Hay una alternativa de comandos debo utilizar para lograr este comportamiento?
Aquí está mi script hasta el momento:
#!/bin/bash
set -e
function cleanup {
osascript -e 'tell application "APP1" to quit'
osascript -e 'tell application "APP2" to quit'
}
trap cleanup EXIT
clear
PS3='Please select an option: '
options=("Start Apps" "Stop Apps")
select opt in "${options[@]}"
do
case $opt in
"Start Apps")
open -a "APP1"
open -a "APP2"
;;
"Stop Apps")
cleanup
;;
*) echo invalid option;;
esac
done