任务终止程序

任务终止程序

在 Unix 或 Linux 上,很容易优雅地要求正在运行的应用程序终止:向其发送 SIGTERM 信号。如果其进程 ID 为 1234,您只需运行kill 1234kill -s TERM 1234或即可kill -15 1234

我怎样才能在 Windows 中做同样的事情?

如果我没记错的话,任务管理器的“结束任务”功能(不是“结束进程”功能)曾经可以满足我的要求。但是,从 Windows 8.1 开始,它不再那么温和;当我使用该功能时,它会导致我丢失未保存的数据。

我不想为此编写任何代码。如果要,我会在 Stack Overflow 上提问。:)

答案1

任务终止程序

您可以使用taskkill.exe(来源。) 它是 Windows 的一部分。

要终止进程 ID 为 1234 的进程:

taskkill /pid 1234

要终止 Windows 记事本:

taskkill /im notepad.exe

要保存击键:

taskkill /im notep*

如需更多帮助:

taskkill /?

如果添加,/f则无论如何都会强制关闭应用程序。如果不添加/ftaskkill则只会正常要求应用程序关闭。 (来源。)

或者直接退出

如果您不想为此烦恼,只需退出 Windows 用户帐户,然后重新登录即可。

控制台应用程序

关于控制台应用程序(例如 PowerShell),Chris Becke添加

在 Windows 上没有真正优雅地关闭控制台应用程序的方法。它们需要支持某种优雅关闭机制。

答案2

您可以使用rmlogotest.exe:重启管理器徽标测试工具。此免费软件实用程序由 Microsoft 编写,是 Windows 应用认证工具包的一部分。

要获取最新版本的 Windows 应用认证工具包,请下载并运行 Windows SDK 安装程序。(您可以通过以下方式找到 Windows SDK 安装程序网络搜索。)取消选中除 Windows 应用认证工具包之外的所有复选框。等待工具包下载并安装。如果我没记错的话,该工具包有几百兆字节。

如果您使用的是 Windows 11 SDK,我猜rmlogotest.exe可能是在C:\Program Files (x86)\Windows Kits\10\App Certification Kit

打开命令提示符。更改到正确的目录。rmlogotest然后输入空格,然后输入进程的进程 ID 号。

如果进程是“重新启动管理器感知”的,rmlogotest则会正常重新启动它并告诉您“徽标验证已通过”。否则,rmlogotest将要求它正常终止,然后可能会告诉您“徽标验证失败”。

我尝试使用rmlogotest.exe终止记事本,它按预期工作。记事本询问我是否要保存我输入的未保存的文本。

(如果您想知道重启管理器是什么以及它的作用,让我来解释一下。重启管理器是 Windows 的一部分,由 Windows Installer 4.0 及更高版本使用。当 Windows Installer 需要覆盖或删除打开的文件时,它使用一个三步过程。它告诉重启管理器正常结束正在使用该文件的进程。它覆盖该文件。然后它告诉重启管理器重新启动该过程。)

答案3

GnuWIN32 具有常见 Linux 实用程序的 Windows 端口,包括 kill.exe

http://gnuwin32.sourceforge.net/

它支持以下信号(按名称或数字)

λ kill -l                                                                                                                                                                                                                                                                
INT                                                                                                                                                                                                                                                                      
ILL                                                                                                                                                                                                                                                                      
FPE                                                                                                                                                                                                                                                                      
KILL                                                                                                                                                                                                                                                                     
SEGV                                                                                                                                                                                                                                                                     
TERM                                                                                                                                                                                                                                                                     
CHLD                                                                                                                                                                                                                                                                     
ABRT             

相关内容