Recipe6.3.Killing a Process


Recipe 6.3. Killing a Process

Problem

You want to terminate a process. Even though Windows has come a long way in the past 10 years, the operating system can't prevent buggy or poorly written applications from becoming unresponsive.

Solution

Using a graphical user interface

  1. Open the Windows Task Manager (taskmgr.exe).

  2. Click on the Processes tab.

  3. If you do not see the process you want to set, be sure the box beside Show processes from all users is checked.

  4. Right-click on the target process, select End Process, and select the desired priority.

You can also accomplish the same task using the Sysinternals Process Explorer (procexp.exe) tool by right-clicking the process and selecting Kill Process.


Using a command-line interface

The following command kills a process by PID:

> taskkill -pid <PID>

And this command kills a process by name on a remote server:

> taskkill /s <ServerName> -im <ProcessName>

Use the /f option to forcefully kill the process.

The pskill.exe utility works in a very similar manner. Here are two examples:

> pskill <PID> > pskill \\<ServerName> <ProcessName>

Using VBScript
' This code terminates the specified process. ' ------ SCRIPT CONFIGURATION ------ intPID = 2560   ' PID of the process to terminate strComputer = "." ' ------ END CONFIGURATION --------- WScript.Echo "Process PID: " & intPID set objWMIProcess = GetObject("winmgmts:\\" & strComputer & _                     "\root\cimv2:Win32_Process.Handle='" & intPID & "'") WScript.Echo "Process name: " & objWMIProcess.Name intRC = objWMIProcess.Terminate( )  if intRC = 0 Then    Wscript.Echo "Successfully killed process." else    Wscript.Echo "Could not kill process. Error code: " & intRC end if

Discussion

Manually killing processes is not something you should be in the habit of doing, but it is a necessary evil of system administration. Be selective about forcibly killing a process, because it will also terminate any child processes in an ungraceful manner and can leave lingering remnants of the process in memory, which may cause problems if you attempt to restart the process later.

There are some processes that you won't be able to manually terminate. Generally this applies to system-level process, such as lsass.




Windows Server Cookbook
Windows Server Cookbook for Windows Server 2003 and Windows 2000
ISBN: 0596006330
EAN: 2147483647
Year: 2006
Pages: 380
Authors: Robbie Allen

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net