习惯了linux的查杀进程命令,对windows下的再做一个补充,主要是针对Java应用程序进程。
Java程序在Windows平台和Linux平台上运行时的区别是,使用命令默认显示的进程信息不同:Linux上默认会显示脚本名,而windows默认不显示启动脚本名 只显示java.exe, 使用tasklist命令一看,全是java.exe,区分不出来了。
因此windows上查杀java进程的关键问题在于识别java进程。
Windows下进程的查杀命令主要有两个,即TaskList和Taskill,查看具体用法:
思路是这样子:windows下cmd中提供了WindowTitle即窗口标题这个东东,因此我们可以通过在java程序启动脚本中设置title,然后在查杀脚本中使用tasklist或者taskill的过滤器/fi来根据窗口标题确定指定进程。
比如:
?
class="java" name="code">tasklist /fi "WINDOWTITLE eq pageCrawlTask" /image java.exe
显示所有 svchost.exe 进程的PID、会话名及会话编号:
?
for /F "skip=3 tokens=2,3,4" %i in ('tasklist /fi "IMAGENAME eq svchost.exe"') do @echo %i %j %k
?
Taskkill /f /im java.exe /fi "Windowtitle eq pageCrawlTask"
?
@echo off Taskkill /f /im java.exe /fi "Windowtitle eq pageCrawlTask" >nul pause
?
?