Schrift
[thread]7743[/thread]

Aktuelle Prozesse bestimmen?



<< >> 4 Einträge, 1 Seite
Ronnie
 2006-02-27 23:36
#63320 #63320
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/perl

use strict;
use warnings;

use CGI;
use CGI::Carp qw/warningsToBrowser fatalsToBrowser/;
use Data::Dumper;
use HTML::Template;

my $q = new CGI;
my $template = HTML::Template->new(filename => "status.html");
my $report = [map
{ [split /\s+/, $_]->[5] } # prozess raussuchen
@{[split /\n/, qx(/bin/ps ax)]} # 'ps ax' splitten
];

$template->param( report => join "<br />\n", @$report );
print $q->header(), $template->output();

Gibt es ein empfehlenswertes Modul mit dem ich die aktuell laufenden Prozesse bequem erfragen kann, anstatt 'ps aux' zu verarbeiten?

Vielen Dank und Gruß,
Ronnie
[E|B]
 2006-02-27 23:43
#63321 #63321
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Unter Windows verwende ich gerne CPAN:Win32::Process::Info.
Ob es aber etwas vergleichbares für *nix Systeme gibt, weiß ich leider nicht.
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
ptk
 2006-02-28 00:18
#63322 #63322
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Ronnie
 2006-03-14 15:30
#63323 #63323
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Danke! Ich habe das aufgegriffen:
Code: (dl )
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
#!/usr/bin/perl

use strict;
use warnings;

use CGI;
use CGI::Carp qw/warningsToBrowser fatalsToBrowser/;

use Proc::ProcessTable;
use Data::Dumper;
use HTML::Template;

my $q = new CGI;
my $template = HTML::Template->new(filename => "status_ps.html");
my $t = new Proc::ProcessTable;

my @needed = qw/Textmate Terminal mysqld launchd securityd/; # add here needed processes

my $report;
my @missing;
my %seen;

foreach my $p ( @{$t->table} ){
my $cmd = $p->cmndline;
$cmd =~ s/(.*)/<span class="success">$1<\/span>/i if grep /$cmd/i, @needed;
push @$report , {
cmdline => $cmd,
pid => $p->pid,
state => $p->state,
};
$seen{$p->cmndline}++;
}

for my $n (@needed) {
push @missing, {
proc => '<span class="error">'.$n.'</span>',
} unless grep /$n/i, keys %seen;
}

$template->param( report => $report , missing => \@missing, );
print $q->header(), $template->output();

und das Template:
Code: (dl )
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
43
44
45
46
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="de">

<head>
<title>Simple Report</title>
<meta name="author" content="Ronnie Neumann" />
<meta name="keywords" content="status report" />
<style type="text/css" media="screen">
/* <![CDATA[ */
h1 { color: #ff9; }

.default {
font-size: 100%;
color: #fff;
background-color: Ƽ font-family: Arial, Helvectia;
}

.error {
color: #f00;
}

.success {
color: #0f0;
}
/* ]]> */
</style>

</head>

<body class="default">
<h1>Fehlende Prozesse:</h1>
<TMPL_LOOP NAME="missing">
<TMPL_VAR NAME="proc"><br />
</TMPL_LOOP>
<h1>Prozesse:</h1>
<table>
<TMPL_LOOP NAME="report">
<tr>
<td><TMPL_VAR NAME="cmdline"></td>
<td><TMPL_VAR NAME="pid"></td>
<td><TMPL_VAR NAME="state"></td>
</tr>
</TMPL_LOOP>
</table>
</body>
</html>
<< >> 4 Einträge, 1 Seite



View all threads created 2006-02-27 23:36.