if ($answer_counter == 1): ?>
endif; ?>
Ctrl +
C mata o shell, assim como o subprocesso FreeFem, porque o sinal SIGINT é enviado para todo o grupo de processos de primeiro plano. Como o shell não é interativo, o subprocesso é executado no mesmo grupo de processos. Veja
Por que o SIGINT não é propagado para o processo filho quando enviado para seu processo pai? e
Qual é o propósito das abstrações, sessão, líder de sessão e grupos de processos? para alguns contextos em grupos de processos.
Você pode fazer com que o shell não morra quando receber o SIGINT configurando uma armadilha para ele. (Não ignore o sinal: isso também faria com que ele fosse ignorado pelo subprocesso.)
"shell_cmd": " gnome-terminal -x sh -c \"trap echo INT; FreeFem++ $file ; exec bash\""