14.04 Binärdatei automatisch neu starten, wenn sie stoppt

14.04 Binärdatei automatisch neu starten, wenn sie stoppt

Ich habe eine Binärdatei, die alle paar Wochen nicht mehr läuft. Man kann sie einfach wieder starten und sie läuft noch ein paar Wochen weiter. Die Software ist nicht perfekt, aber sie wäre perfekt genug, wenn sie automatisch neu gestartet würde.

Wie kann ich am besten etwas so einrichten, dass automatisch geprüft wird, ob die Binärdatei ausgeführt wird, und diese gestartet wird, wenn dies nicht der Fall ist?

Antwort1

Eine elegante Möglichkeit zur Steuerung Ihres Programms besteht in der Erstellung eines Skripts mit PID-Dateimechanik, das die PID des Programms in einer Datei speichert und damit prüft, ob der Prozess noch läuft:

#!/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

Führen Sie das Skript nun regelmäßig aus (z. B. incrontab).

verwandte Informationen