|< 1 2 >| | 17 Einträge, 2 Seiten |
1 2 3 4 5 6 7 8 9 10
open (PS,"ps ax|") or die("Fehler : $!"); @ps = <PS>; foreach (@ps) { if (($_[15] eq "T") or ($_[15] eq "X") or ($_[15] eq "Z")) { print("Prozess abgeschmiert"); } } close(PS);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/perl
use strict;
use warnings;
my %PROCS = (
httpd => 'Apache Webserver',
mysqld => 'MySQL Server',
dummy => 'nicht existierender Prozess',
);
my %STATE = (
S => 'am schlafen',
R => 'am laufen',
T => 'angehalten',
Z => 'Zombie',
D => 'im Koma'
);
my @messages;
#my @found;
my $pattern = '^(\w).+(' . join('|' => keys %PROCS) . ')';
open(PS, 'ps -A -o stat,cmd |') or die $!;
<PS>;
while(<PS>){
if(/$pattern/) {
push(@messages, sprintf("%s ist %s", $PROCS{$2}, $STATE{$1}));
# push(@found, $2);
}
}
close(PS);
print "$_\n" for @messages;
#delete @PROCS{@found};
#print "-" x 30,"\n";
#print "Prozess $_ nicht gefunden!\n" for keys %PROCS;
[E|B,22.06.2004, 21:16]Mit ps -ax bekommst du die laufenden Prozesse.
Die liest du aus und prüfst dann.
|< 1 2 >| | 17 Einträge, 2 Seiten |