Monit - Daemoniza o processo não daemon?

3

Eu tenho um processo ruby que não é executado como um daemon (ele é executado em primeiro plano), mas pode gerar um arquivo pid. Minha pergunta é que a Monit sempre espera monitorar processos em segundo plano / daemonizados?

Eu usei o Bluepill no passado e esse foi o comportamento padrão:

Note that since we specified a PID file and start command, bluepill assumes the process will daemonize itself. If we wanted bluepill to daemonize it for us, we can do (note we still need to specify a PID file): process.daemonize = true

Existe algo semelhante para monit? AFAIK, desde que o processo (daemon ou não) possa criar um arquivo PID, o Monit detectará se ele se daemoniza e não o daemonizará e vice-versa ...

Obrigado

    
por allaire 14.07.2013 / 16:34

2 respostas

3

Ele funcionará bem para monit .. Você pode fazer com que ele verifique o arquivo pid do processo e basicamente o que monit está fazendo é fazer um

ps aux | grep pid#

Se estiver lá, acho que está funcionando. Se você não tem um arquivo pid, você pode verificar um processo também por meio de algo como

check process myprocessname
    matching "myprocessname"

Isso praticamente faz um

ps aux | grep myprocessname
    
por 14.07.2013 / 19:01
1

A maneira fácil é deamonizar seus processos não-deamon. Isto é, crie um script de shell:

#!/bin/sh
/usr/local/bin/your_program < /dev/null &

E, em seguida, use esse script como um daemon para ser executado. Ele iniciará seu programa (que criará o arquivo PID) em segundo plano e, em seguida, retornará o controle imediatamente, evitando assim o tempo limite e a morte espúria por monit.

    
por 01.09.2016 / 23:24