Когда Task Manager бессилен, на помощь приходят утилиты Tlist и Kill.

И сразу вспоминаю -- почему. Что ни говори, NT гораздо лучше в мультизадачном режиме и более стабильна, чем Windows 9x. Она дает больше возможностей контроля над системой. А когда процесс работает некорректно, я могу использовать Task Manager для его завершения.

По моему опыту, Task Manager в NT успешно завершает процессы с нарушениями в работе чаще, чем Windows 9x, где данная операция нередко "подвешивает" систему. Но иногда даже Task Manager не может завершить процесс и выводит диалоговое окно с сообщением "Операция не может быть завершена. Отказ в доступе". Как и любой системный администратор, я не могу смириться с тем, что не имею доступа к системе, поэтому, когда Task Manager не позволяет завершить процесс, я использую утилиты Tlist и Kill из комплекта ресурсов Microsoft Windows NT 4.0 Resource Kit. Tlist и Kill входили в состав комплекта ресурса начиная с самого первой его версии, поэтому многие, вероятно, уже хорошо знакомы с этими средствами. Утилита Tlist, вызываемая из командной строки, выдает список всех выполняющихся на данном компьютере задач. Чтобы показать процессы, запущенные на другом компьютере, необходимо воспользоваться утилитой Pulist. Вызов Tlist без параметров выдает перечень всех выполняющихся процессов, а также идентификаторы процессов (PID). Для использования утилиты Kill необходимо знание PID, указывающего на процесс.

Kill завершает процесс, который был задан. В самой простой своей форме Kill использует синтаксис kill PID.

Для завершения процесса сначала выполняют Tlist, чтобы определить имена и PID всех процессов, запущенных на сервере. Затем запускают Kill, указывая PID для процесса, который требуется завершить. Например, для завершения «зависшего» процесса с именем dbserver.exe набирают


 tlist

и определяют PID процесса dbserver. Присвоенное значение PID -- 306, и тогда нужно ввести


 kill 306

для завершения процесса.

Иногда Kill сообщает, что она не может остановить процесс. В этом случае можно использовать более мощные возможности, добавив параметр -f (т. е. kill -f PID). В моей практике выбор опции -f всегда приводил к завершению процесса. В документации по утилите Kill объясняется, что вместо определения PID можно просто указать имя прикладной программы, например kill notepad.exe или даже kill note*. Однако Kill ведет себя немного странно, когда процесс завершают, используя имя, а не PID. Например, если указать PID при завершении программы Notepad, которая содержит несохраненный текст, Notepad завершается немедленно. Но если указать kill notepad.exe, программа выводит диалоговое окно, предлагающее подтвердить отказ от сохранения текста перед выходом. В этом случае можно напечатать kill -f notepad.exe, чтобы вынудить kill игнорировать сообщение, и Notepad закроется без подтверждения.

Можно задавать параметры и для утилиты Tlist. Например, -t помимо самих процессов отображает деревья подпроцессов. И тогда tlist -t показывает, что процесс Windows Explorer запустил Microsoft Outlook. Можно также набрать


 Tlist 

чтобы получить список дополнительной информации относительно указанного процесса, например: сколько памяти он занимает, какие DLL использует и количество установленных связей.

Пока в NT 4.0 не появился Task Manager, Tlist и Kill были единственными инструментами, которые могли помочь завершить своенравный процесс. И до сих пор эти самые старые инструменты остаются самыми лучшими.

Марк Минасси - редактор Windows NT Magazine, имеет сертификат MCSE; является автором книги «Mastering Windows NT Server 4.0» (издательство Sybex).

С ним можно связаться по адресу: mark@minasi.com.