Re: Abbrechen eines Programms, das in einem Bash Skript gestartet wird.

[email protected]
Newsgroups gmane.linux.suse.programming
Message-ID <43E25001.31914.2052089@localhost>
Am 2 Feb 2006 um 16:41 hat [email protected] geschrieben:

Ich kenne noch pstree. Damit kann man sehen, welche Prozesse von wem
gestartet wurden. Also muss es möglich sein, seine 'Kinder' zu 'killen' - sorry :-)

Dann kenne ich noch killproc 'name'. Ich glaube, das löst den Namen zur PID auf
und führt kill 'PID' aus. Vielleich selbst nur ein script.

Lothar

> 
> hallo,
> die Vorschlag über trap das signal abzufangen ist glaube ich der richtige
> Weg. Als Aktion müßte da ein kill des
> im Skript aufgerufenen Propgramms stehen. Das Von dem Programm nicht die
> PID habe und auch nicht weiß
> wie ich sie bekomme ohne das Programm in den Hintergrund zu schicken, bin
> ich nicht weitergekommen.
> Ich habe jetzt den Aufruf des Programm direkt ohne Skript gemacht und
> hinter dem kill() noch ein waitpid()
> eingebaut und es funktioniert. Da ich aber sonst auch mit Skripten arbeite
> bin ich weiterhin an eine Lösung interessiert.
> Insbesondere stellt sich mir die Frage, gibt es eine Möglichkeit ein signal
> an child prozesse zu schicken, ohne
> deren PID zu kennnen?
> 
> Hier das Skript:
> #!/bin/bash
> # file: startx.sh
> 
> export SODA="/usr/soda"
> export PATH="/usr/soda/bin:$PATH"
> export LD_LIBRARY_PATH="/usr/soda/lib"
> xscall "$@"
> 
> Wenn dies Skript gekillt wird, läuft das Programm xscall weiter. Schön wäre
> es wenn nach dem Abfangen eines signals,
> dies an das Programm xscall weiergegeben werden könnte.
> 
> 
> Gruß
> Bernard
> 
> Johanns Schneider <[email protected]> wrote on 02.02.2006 13:57:05:
> 
> > [email protected] schrieb:
> > > Am 31 Jan 2006 um 9:21 hat [email protected] geschrieben:
> > >
> > > Vielleicht hilfts:
> > >
> > > ## install trap for automatic deletion of TMPFILE and MSGFILE at
> > > ## SIGEXIT (0) see 'man bash' and all other signals. The trap for
> > > ## SIGKILL (9) is ignored though, of course. See 'help trap'.
> > > trap "rm -f \"$TMPFILE\"; rm -f \"$MSGFILE\";" `seq 0 63`
> > >
> > > Lothar
> > >
> > >>
> > >> Hallo,
> > >> ich habe folgende Situation. Ein C++ Programm ruft mit execve ein Bash
> > >> Skript auf und wartet mit waitpid() auf die normale Beendigung. Wenn
> die
> > >> Ausführung des Skriptes zu lange dauert, soll es mit kill(pid,
> SIGKILL)
> > >> beendet werden. Das Skrpt selber ruft wieder ein C++Programm auf.
> Jetzt
> > >> ensteht folgende Situation.
> > >> Nach dem kill() geht das Skript in den Status defunct und das vom
> Skript
> > >> aufgerufene Programm läuft normal weiter. Hierzu jetzt 2 Fragen:
> > >> Wie kann ich erreichen, dass auch das vom Skript aufgerufene Programm
> > >> beendet wird, also das kill() quasi weitergegebe wird?
> > >> Wir verhindere ich, dass das Skript in defunct geht? Ich muss
> > >> wahrscheinlich nach kill nochmal waitpid() aufrufen, möcht hier aber
> nicht
> > >> ewig warten müssen.
> > >>
> > >> Vielen Dank im voraus für eure Hilfe.
> > >>
> > >> Gruß
> > >> Bernard
> > >
> > >
> >
> > du kannst doch die pid des gestarteten programms ermitteln ($# glaub
> > ich) versuch doch die an dein erstes programm zu übergeben und dann ggf
> > kill(pid, ...); danach sollte sich das skript ja automatisch beenden,
> > ansonsten musst du das skript noch anpassen
> >
> > greatz Johannes
> >
> >
> > --
> > Es gibt 10 Arten von Menschen auf dieser Welt, die einen verstehen das
> > Binärsystem und die anderen verstehen es nicht.
> >
> > --
> > Um die Liste abzubestellen, schicken Sie eine Mail an:
> >     [email protected]
> > Um eine Liste aller verfügbaren Kommandos zu bekommen, schicken
> > Sie eine Mail an: [email protected]
> >


-- 
Lothar Behrens	|	Rapid Prototyping ...
Rosmarinstr 3		|	
40235 Düsseldorf  	|	www.lollisoft.de




-- 
Um die Liste abzubestellen, schicken Sie eine Mail an:
    [email protected]
Um eine Liste aller verfügbaren Kommandos zu bekommen, schicken
Sie eine Mail an: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.