Archiv verlassen und diese Seite im Standarddesign anzeigen : shell Script, prüfen ob Prozess noch läuft
Hallöchen, ich bräucht bitte grad mal einen Tip.
Bin mit dem Shellscripting nicht sonderlich vertraut und hab auch schon google befragt, aber so richtig finde ich nix.
Ich brauch ein kleines Shellscript, welches aller X sek (ich denk mal zwischen 10-30) schaut ob ein bestimmter Prozess noch läuft und ihn neu startet falls nicht.
Ich hatte auch schon mal ein ähnliches script, aber ich find es nicht wieder :/
Kann mit jemand grad auf die Sprünge helfen ?
Danke Manu
Schau halt mit pidof nach, ob er noch eine Prozess-ID hat. Wenn ja, läuft er noch, wenn nein, dann läuft er nicht mehr.
Hallo Manuel,
hatte mal ein Script geschrieben, weil ein Programm immer abgeschmiert ist:
#!/bin/sh
# Name of program in ps-list
NAME="Azureus*"
# Dir to program
DIR="/dev/fs/P/azureus/Azureus.exe"
clear
# check if running
if ( ps -a | grep "$NAME" )
then
echo "$NAME is running..."
else
echo "$NAME NOT running! Restarting..."
$DIR &
echo "$NAME restarted"
fi
exit 0
Nicht wegen den Pfaden wundern, ist mit Windows Services for Unix gemacht. Wollte das Teil mal testen.
Du musst dann noch einen CronJob anlegen.
crontab -e
und dann da rein ("i" drücken zum Einfügen, "ESC" um wieder aus dem Einfügen-Modus rauszukommen und ":wq" zum speichern und verlassen):
*/5 * * * * /dev/fs/C/progrestart.sh
Hier wird angegeben das das Script alle 5 Minuten aufgerufen wird.
Google einfach nach Cronjob dann findest du ne Erklärung wenn eine andere Zeit willst.
Pfade musst natürlich noch anpassen.
Gruß
nEox
ah, vielen Dank für die Antworten. Das mit Cron ist kein Thema, da kenn ich mich aus.
Mit Cron ist das auch ne Möglichkeit, ich hatte da sleep im Hinterkopf, aber ich denk so ist es besser :)
also Danke nochmal, Manu
Travolds
03-08-2005, 17:20
hi,
für sowas is unter unix/linux der init prozess zuständig
/etc/inittab
man inittab
man init
lg
für sowas is unter unix/linux der init prozess zuständig
Nein, das kümmert sich um andere Sachen. :p
Welche Dienste bei betreten bzw. verlassen der einzelnen Runlevel gestartet/gestopt werden, hilft hier wohl kaum weiter. ;)
Nein, das kümmert sich um andere Sachen. :p
nein, travolds hat vollkommen recht.
Welche Dienste bei betreten bzw. verlassen der einzelnen Runlevel gestartet/gestopt werden, hilft hier wohl kaum weiter. ;)
man inittab, action 'respawn'
-j
Klar gibt es respawn, aber dann hab ich den Prozess immer laufen. Mir schien es so, als wenn es hier eher um darum geht temporär zu überprüfen, ob ein Prozess noch läuft.
Klar gibt es respawn, aber dann hab ich den Prozess immer laufen. Mir schien es so, als wenn es hier eher um darum geht temporär zu überprüfen, ob ein Prozess noch läuft.
siehe post des OP: teste ob läuft, wenn nicht -> restart. prozess soll also immer laufen.
-j
RapidMax
06-08-2005, 16:26
Ansonsten gibt es noch - sofern man mit den Lizenzbedingungen einverstanden ist - die daemontools (http://cr.yp.to/daemontools.html), welche das Restarten von Services übernehmen, sofern diese beim Start nicht forken (z.B. als daemon laufen).
Gruss, Andy
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.