Hi
ich suche eine Möglichkeit mit einem init Script , welches unter "/etc/init.d/" liegt, das beim Systemstart ausgeführt wird und am besten im Hintergrund weiterläuft, automatisch prüft ob der Prozess, der von diesem init Script gestartet wurde, noch läuft, wenn nicht, sollte dieses init Script den Prozess neustarten.
Jemand eine Idee wie man das scripten könnte ?
vielen Dank
ren22
init.d start prozess prüfen ob läuft
Re: init.d start prozess prüfen ob läuft
viele Skripte legen zB eine Datei an, deren einziger Inhalt die PID ist (zB in /var/run). Dann kann man leicht prüfen ob dieser Prozeß noch läuft.
Die PID eines im Hintergrund gestarteten Programms wird in der Variablen $! gespeichert.
Die PID eines im Hintergrund gestarteten Programms wird in der Variablen $! gespeichert.
Re: init.d start prozess prüfen ob läuft
hat jemand ein Beispiel parat ?
vielen Dank
ren22
vielen Dank
ren22
Re: init.d start prozess prüfen ob läuft
In Debian macht das zB auf Wunsch start-stop-daemon. Als Beispiel die Zeilen zum starten und stoppen aus dem init-Skript von ssh:
(die manpage von start-stop-daemon ist sehr gut gemacht )
oder ohne start-stop-daemon einfach in der Art:
starten des Programms…
überprüfen und gegebenenfalls neu starten…
das könntest du dann in einer Schleife oder als cron-Job alle paar Minuten ausführen
Code: Alles auswählen
start-stop-daemon --start --quiet --oknodo --pidfile /var/run/sshd.pid --exec /usr/sbin/sshd -- $SSHD_OPTS
start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/sshd.pid
oder ohne start-stop-daemon einfach in der Art:
starten des Programms…
Code: Alles auswählen
/usr/local/bin/meinProgramm &
echo $! > /var/run/meinProgramm.pid
Code: Alles auswählen
if ps --pid $(cat /var/run/meinProgramm.pid) > /dev/null
then
echo Programm läuft
else
echo Programm läuft nicht
/usr/local/bin/meinProgramm &
echo $! > /var/run/meinProgramm.pid
fi