Perl для системного администрирования




Управление процессами в NT/2000 - часть 2


Программа kill.exe использует два различных способа завершения работы процессов. Один из них - это так называемая «вежливая смерть»: kill.exe <process id> попросит подтверждения на завершение работы процесса. Но если добавить к командной строке ключ //, действия kill.exe /f <process id> будут скорее напоминать манеру истинных Perl-функций - он завершит работу процесса с особенной предвзятостью.

Использование модуля Win32::IProc

Второй подход - применять модуль Win32: : IProc Амина Мюлэй Рамдэна (Amine Moulay Ramdane). И хотя название подсказывает, казалось бы, очевидный выбор, но Win32: : Iproc, в действительности, гораздо полезнее для нас, чем Win32: :Process. У Win32: : Process есть один значительный недостаток, который тут же выводит модуль из борьбы: он создан для работы с процессами, которые были запущены им самим. В то время как нас больше интересуют процессы, запущенные другими пользователями. Если вам не удается установить модуль Win32: :IProc, загляните в раздел «Информация о модулях из этой главы» .

Сначала необходимо создать объект процесса подобным образом:

use Win32::IProc;

и обратите внимание на регистр.

Обязательно должно быть "IProc"

$pobj = new Win32::IProc or die

"Невозможно создать объект proccess: $!\n";

Такой объект обычно используется в качестве трамплина, с которого запускаются методы объекта. Например, чтобы получить список всех запущенных процессов, можно написать:

$pobj-> EnumProccesses(\@processlist) or

die "Невозможно получить список процессов:$!\n";

@processlist - это массив ссылок на анонимные хэши. В каждом анонимном хэше есть два ключа: ProcessName и Processld с их значениями. Такой код позволяет аккуратно вывести нужную информацию:

use Win32::IProc;

$pobj=new Win32::IProc or die

$pobj->EnumPrecesses(VSprocessiis и or

die "Невозможно получитэ список процессор:$г\п';

foreach Sprocess (@processlist){

$pid = $process-x{ProcessId};

Snair.e - $cessNama}; write:

}

format STDOUT_TCP =




Содержание  Назад  Вперед