Process Watcher Para Mac

1

Estou procurando algo que tenho certeza que está por aí, mas não consigo encontrá-lo.

Eu tenho um programa de longa duração (simulação do Matlab) que funciona por 24 horas ou mais no Mac do meu escritório. Ocasionalmente o programa trava, então estou procurando um programa ou comando que possa verificar periodicamente para ter certeza de que o processo ainda está em execução e, se não estiver, envie-me um e-mail para que eu possa efetuar login remotamente e reiniciar o programa / correção o problema.

Quanto mais user-friendly, melhor, como eu gostaria que os usuários não avançados pudessem usá-lo por conta própria.

    
por Millhouse 16.11.2010 / 23:50

3 respostas

2

Eu não uso o Matlab há algum tempo, mas pelo que entendi de Suporte MathWorks , se seu código travar, você obterá um arquivo matlab_crash_dump.XXXX em sua pasta pessoal, onde XXXX é um número. Você pode usar Hazel para detectar a adição desse arquivo e, em seguida, usar um fluxo de trabalho do Automator para enviar um e-mail.

Eu gostaria de testar isso, mas atualmente não tenho nada que trave o Matlab.

    
por 17.11.2010 / 01:33
0

Você pode fazer isso com um script simples. Qualquer script com o qual você se sinta confortável, seja bash, ruby, applescript ou qualquer outra coisa.

Eu tinha um script bash definido em uma tarefa do cron que verificaria se um servidor Teamspeak estava em execução e, caso contrário, inicie-o.

    
por 17.11.2010 / 00:29
0

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.

    
por 17.11.2010 / 01:41