Re: Alle Prozesse eines Users killen (perl)?

Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

From: Heinz Diehl (hd_at_elfie.rhein-neckar.de)
Date: 21. Jun 1999


On Sun Jun 20 1999, Mark Seuffert (Pirates) wrote:

[kleines Script]
> Verstehe ich jetzt um die Zeit nicht ganz *g*,

        die "Usage: $0 [signal to send]\n" if $#ARGV < 0;

Fehlermeldung ausgeben, wenn in der Kommandozeile kein Argument angegeben
wurde.

        @ps = `ps au`;

Die Liste @ps mit dem Inhalt des Shell-Befehls "ps au" fuellen.

        $dropit[0] = $ARGV[0];

In das erste Feld der Liste @dropit das uebergebene Signal schreiben.

        foreach $line(@ps) {
                    if ($line =~ /^$username/) {

Wenn die Zeile mit dem Namen des Benutzers anfaengt, dann ....

                ($pid = $line) =~ s/.*?\s+(.*?)\s+.*/$1/;

.... die Prozess-ID holen und ....

                push(@dropit, $pid);
                
.... die Liste @dropit damit fuellen.

            }
}

kill @dropit;

Wenn alle ID's des betreffenden Users drinstehen, abschiessen.

> > Die die-Anweisung in der ersten Zeile (open ....) kann man sich
> > sparen, denn sie kommt niemals zur Ausfuehrung, da der open-Befehl
> > keinen Rueckgabewert liefert, falls der in der Pipe laufende
> > Befehl in der Shell einen Fehler verursacht.
[....]

> ah... danke, das ist interessant. Ich denke ich hab das aus der 'man
> perlipc' "abgeschrieben". Woher hast Du Deine Informationen? *neugierig*

Darauf hat mich mal Michael Schilli (in de.comp.lang.perl)
hingewiesen, als ich ein Stueck Code von mir gepostet habe,
ich habe den Fehler auch schon gemacht.
Wie das mit der Rueckgabe von open() geht steht auch ganz gut
beschrieben im Kamel.


Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

Dieses Archiv wurde generiert von hypermail 2.1.2 : 11. Mar 2002 CET