Se você quiser manter um processo em execução (ou melhor, reiniciá-lo se sair), use launchd
. Há uma receita para manter o TextEdit vivo aqui , e O Lingon está disponível como uma GUI para configurá-lo.
Isso não é perfeito para o seu problema em particular, - launchd
irá reiniciar seu processo sempre que ele sair, independentemente de ter sido bem-sucedido ou não. Isso pode ser um grande problema se o seu programa substituir a saída perfeitamente boa da execução anterior. Para contornar isso, você poderia colocar seu programa em um script (um script de shell faria) que executaria o programa e, em seguida, se fosse bem-sucedido, remova o trabalho launchd
antes de sair. Algo como:
#!/bin/bash
/my/matlab/program
#$? is the exit value of your program - convention is 0 for success, non-zero otherwise
if [ $? = 0 ]
launchd unload keep.my.matlab.running
fi
[editar]
Se o Matlab produzir uma saída como sugere o fideli, você poderá usar uma pasta ação na pasta em que o Matlab colocaria seu relatório de erros. Basta escrever um fluxo de trabalho Applescript ou Automator que tome os arquivos que foram adicionados, verifique se eles são um erro do Matlab e, em caso afirmativo, envia um e-mail. Um dos internos é chamado de "novo alerta de item" e é provavelmente um bom ponto de partida para alguma modificação genética.