Handle hostnames with upper-case letters
[webmin.git] / proc / windows-lib.pl
1 # windows-lib.pl
2 # Functions for parsing Windows process.exe command output
3
4 sub list_processes
5 {
6 local($pcmd, $line, $i, %pidmap, @plist);
7 open(PS, "process -t -c |");
8 while(<PS>) {
9         s/\r|\n//g;
10         if (/^\s*(\S+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\S+)\s+(\S+)/) {
11                 local $proc = { 'pid' => $2,
12                                 'ppid' => 0,
13                                 'time' => $6,
14                                 'args' => $1,
15                                 '_threads' => $3,
16                                 'nice' => $4,
17                                 'cpu' => "$5 %",
18                                 'size' => "Unknown" };
19                 $pidmap{$proc->{'pid'}} = $proc;
20                 push(@plist, $proc);
21                 }
22         }
23 close(PS);
24 open(PS, "process -v |");
25 while(<PS>) {
26         local $proc;
27         s/\r|\n//g;
28         if (/^\s*(\S+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(.*)/ &&
29             ($proc = $pidmap{$2})) {
30                 local $user = $6;
31                 $user = "Unknown" if ($user =~ /^Error/);
32                 $proc->{'user'} = $user;
33                 }
34         }
35 close(PS);
36 if (@_) {
37         # Limit to PIDs
38         local %want = map { $_, 1 } @_;
39         @plist = grep { $want{$_->{'pid'}} } @plist;
40         }
41 return @plist;
42 }
43
44 # renice_proc(pid, nice)
45 sub renice_proc
46 {
47 return undef if (&is_readonly_mode());
48 local $out = &backquote_logged("process -p $_[0] $_[1] 2>&1");
49 if ($?) { return $out; }
50 return undef;
51 }
52
53 %info_arg_map=( "_threads", $text{'windows_threads'} );
54
55 @nice_range = ( 0 .. 20 );
56
57 $has_fuser_command = 0;
58
59 sub os_supported_signals
60 {
61 return ("KILL", "TERM", "STOP", "CONT");
62 }
63
64 1;
65