14.04 Reinicia automaticamente o binário se parar [duplicado]

0

Eu tenho um arquivo binário que para de rodar a cada poucas semanas, você pode simplesmente iniciá-lo novamente e ele é executado por mais algumas semanas. O software não é perfeito, mas seria perfeito se reiniciasse automaticamente.

Qual é a melhor maneira de configurar algo para verificar automaticamente se o binário está sendo executado e iniciá-lo se não estiver?

    
por NachoCheese 12.11.2015 / 07:44

1 resposta

0

A maneira elegante de controlar seu programa é criar um script com a mecânica de arquivos PID, que salvará o PID do programa no arquivo e verificará com ele se o processo ainda estiver em execução:

#!/bin/bash

PID_FILE=/var/run/rerun.pid # need root permission to store in this directory
EXEC=/usr/bin/gedit # replace it with actual executable

function run() {
    # execute the program
    $EXEC &
    # save its PID
    echo $! > $PID_FILE
}

if [ -e $PID_FILE ]; then
    # check if program is still running
    pid=$(<$PID_FILE)

    # find the proper process
    ps --pid $pid|grep -q 'basename $EXEC'

    if [ $? != 0 ]; then
        # not found - rerun
        run
    fi
else
    # no PID file - just execute
    run
fi

Agora, execute o script periodicamente (por exemplo, em crontab ).

    
por madneon 12.11.2015 / 18:19