Re: Überprüfen ob ein S cript schon läuft
On Tue, 15 Mar 2005, Michelle Konzack wrote:
> Hey Thomas, :-D
Moinsen Madmoiselchen und Jan und Bruno, :-)
recht sakrischen Dank noch einmal für alle die Antworten. Ich hatte schon
so einen Verdacht mit den "fork-exec"-Kombos, aber so richtig glauben will
man die Sachen ja nicht, die einem das eigene kranke Hirn einreden mag.
> Warum machste eigentlich alles so kompliziert ?
> :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)
Hey - das ist - bis auf eine kleine Korrektur - der Spruch von meiner
Frau! (s/eigentlich/& immer/g)
Ihr beiden kennt euch doch nicht etwa? ;-)
Aus dem Flachsfeld zurück zum Thema:
1.) pstree ist hübsch - unterschlägt aber die Kommandozeile. Hab ich
gemerkt, als ich im Editor war und das Script im einen Screen
editierte und im anderen Screen laufenließ. Der Editor wurde als
laufende Instanz gezählt, was nicht ganz im Sinne des Erfinders war.
Aber wie gesagt, pstree ist wirklich was für's Auge und nicht ganz so
krude wie "ps xufa". "wc -l" hätte ich wissen müssen, wenn ich die
man-page zu wc gelesen hätte. Wieder was gelernt - trotz meines
biblischen Alters... :-)
2.) Die Sache mit dem "fork"en des Scriptes habe ich soweit vermutet und
daher auch geistig durchdrungen. Es ist immer wieder überraschend,
welche Niggeligkeiten in einer Mehrprozessumgebung aufkommen.
3.) Die Sache mit dem $PIDFILE in der die PID und Uhrzeit steht, scheint
in der Tat die beste Variante zu sein. Denn wenn ein Prozess abstürzt,
dann kann das Script diesen Umstand dadurch feststellen, daß auf der
PID kein Prozess mit dem Namen $0 läuft und ein neues $PIDFILE
anlegen. Abgesehen von den ganzen "und und und" ;-) die sich dadurch
viel eleganter greifen lassen.
Daraus folgt natürlich:
4.) Gibt's bei Debian nicht schon was, was das von vorneherein macht?
Sowas wie ein "checkproc" wie man es vom Nürnberger Microsoft kennt
und auf diesen Rechnern allenthalben schätzt und einsetzt, das aber im
Gegensatz zum Nürnberger Original nicht nur Binaries testen kann?
t_antepoth@sofa:~> rpm -q --whatprovides /sbin/checkproc
sysvinit-2.85-31
t_antepoth@sofa:~>
( apt-cache search process | grep check wurde bereits durchgeführt )
Habe den Source mal heruntergeladen und mir die Lizenz dazu angesehen. Das
ist erfreulicherweise die GPL, unter der das killproc/checkproc Duo steht.
tar tvjf killproc-2.06.tar.bz2
drwxr-xr-x werner/suse 0 2003-04-14 17:35:28 killproc-2.06/
-rw-r--r-- werner/suse 983 2003-04-14 17:35:28 killproc-2.06/README
-rw-r--r-- werner/suse 18007 2003-04-14 17:35:28 killproc-2.06/COPYING
-rw-r--r-- werner/suse 4358 2003-04-14 17:35:28 killproc-2.06/Makefile
-rw-r--r-- werner/suse 7679 2003-04-14 17:35:28 killproc-2.06/killproc.8
-rw-r--r-- werner/suse 8728 2003-04-14 17:35:28 killproc-2.06/killproc.c
-rw-r--r-- werner/suse 14399 2003-04-14 17:35:28 killproc-2.06/startproc.c
-rw-r--r-- werner/suse 7451 2003-04-14 17:35:28 killproc-2.06/startproc.8
-rw-r--r-- werner/suse 5468 2003-04-14 17:35:28 killproc-2.06/checkproc.c
-rw-r--r-- werner/suse 6335 2003-04-14 17:35:28 killproc-2.06/checkproc.8
-rw-r--r-- werner/suse 31828 2003-04-14 17:35:28 killproc-2.06/libinit.c
-rw-r--r-- werner/suse 8278 2003-04-14 17:35:28 killproc-2.06/libinit.h
-rw-r--r-- werner/suse 1576 2003-04-14 17:35:28 killproc-2.06/usleep.c
-rw-r--r-- werner/suse 1024 2003-04-14 17:35:28 killproc-2.06/usleep.1
-rw-r--r-- werner/suse 749 2003-04-14 17:35:28 killproc-2.06/killproc-2.06.lsm
Da könnte man doch vollkommen blasenfrei ein Paketchen aus dem Checkproc
schneidern?
> Uah.... habe ich jetzt rumgemacht :-)
Merci vielmalst :-)
Ich weiß garnicht wie ich das wieder gut machen kann.
Ich sag' daher einfach mal herzlichst "Danke" :-)
Mit freundlichem Grinsen
Thomas Antepoth
Reply to: