Re: Alle Prozesse eines Users killen (perl)?

Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

From: Mark Seuffert (Pirates) (captain_at_pirate.de)
Date: 20. Jun 1999


Heinz Diehl schrieb am 19 Jun 99, (you wrote):

> > und kill gibt's auch inline.
>
> Ist aber ein bisschen "oversized" fuer ein paar Prozesse, oder ?
> Du brauchst naemlich eine ganze Liste dafuer, da ist mir der
> Shell-Aufruf lieber. Aber bitte sehr (aus dem Kopf, bitte testen) :)
Verstehe ich jetzt um die Zeit nicht ganz *g*, ich benutze jetzt die
folgende Routine, die funktioniert soweit:

$::ps_cmd = "/bin/ps"; #this is somewhere at the beginning of the script

# Kill all processes of an user
sub slay {
  my $user = lc($_[0]);
  my ($username, $pid);
 
  open (PROCESS, "$::ps_cmd au |") || return 1; #we use the ps command to get a process list
  while (<PROCESS>) { #adjust the ps arguments above if not running on Linux
   ($username,$pid) = /^(.*?)\s+(\d+)\s+.*/; #adjust this RE also if not running on Linux
   if($user eq $username) { kill (9, $pid) } #kill every process of the user
  }
  close PROCESS || return 2;
}

> 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.
>
> Richtig ist die die-Anweisung in der letzten Zeile (close ....),
> denn close liefert einen falschen Rueckgabewert falls die Ausfuehrung der
> Pipe irgendwie auch immer fehlschlaegt. "Error closing ...." trifft den
> Nagel nicht ganz auf den Kopf, da der Fehler irgendwo bei der Ausfuehrung
> auftreten kann.
ah... danke, das ist interessant. Ich denke ich hab das aus der 'man
perlipc' "abgeschrieben". Woher hast Du Deine Informationen? *neugierig*

-- 
 _    _   Just do it!         _ 
| |  (_)_ _ _  ___ __    ~0  |_)    Mark "Moak" Seuffert
| |__| | ' \ || \ \ /   |(_~|___|   Pirates Communication
|____|_|_||_|__//_\_\    T/_ T T    http://www.pirate.de

Es gibt 3 Arten von Menschen: Welche die zaehlen koennen und welche die es nicht koennen.


Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

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