Existem dois problemas;
O primeiro é que dentro de cada comando bash -ic
(que por sinal não gera um shell interativo porque -c
sobrescreve -i
, então -i
é seguro ser descartado) você está chamando bash disown
em vez de bash
, o que significa nada e imediatamente sai no erro; portanto, não há shell interativo em execução que mantenha gnome-terminal
aberto no final do comando bash -c
externo;
(Lembre-se também que você pode usar exec bash
em vez de bash
no final do comando para salvar alguns processos.)
O segundo é que Ctrl + C SIGINTs todos os processess no mesmo grupo do processo eliminado, incluindo o pai bash
instância que é suposto a desova o shell interativo no final do comando;
Para corrigir isso, você pode usar bash
trap
integrado para definir bash
para gerar outra instância bash
interativa após a recepção de um sinal SIGINT.
Em suma, isso deve funcionar:
gnome-terminal \
--tab-with-profile=Default --title=PROG1 -e "bash -c \"trap 'bash' 2; clear;ls;./prog1; exec bash\"" \
--tab-with-profile=Default --title=SIMULATOR -e "bash -c \"trap 'bash' 2; clear;ls;./simulator; exec bash\"" \
--tab-with-profile=Default --title=PROG2 -e "bash -c \"trap 'bash' 2; clear;ls;./prog2; exec bash\"" \
--tab-with-profile=Default --title=DATA -e "bash -c \"trap 'bash' 2; ./data -f \"/home/user/NetBeansProjects/data3.txt\" -p \"6785\"; exec bash\"" \
--tab-with-profile=Default --title=PROG3 -e "bash -c \"trap 'bash' 2; cd /home/user/NetBeansProjects/simulator;./prog3; exec bash\"" \
&