草庐IT

python - 在 Windows 上优雅地终止子 Python 进程,以便 Finally 子句运行

在Windows机器上,我有许多父进程将启动子进程的场景。出于各种原因-父进程可能想要中止子进程但是(这很重要)允许它清理-即运行finally子句:try:res=bookResource()doStuff(res)finally:cleanupResource(res)(这些东西可能嵌入在更近的上下文中-通常围绕硬件锁定/数据库状态)问题是我找不到在Windows中向子进程发出信号的方法(就像在Linux环境中那样),因此它会在终止前运行清理。我认为这需要让子进程以某种方式引发异常(就像Ctrl-C那样)。我尝试过的事情:操作系统杀操作系统信号subprocess.Popen带有c

windows - 当 "Debug Assertion Failed"出现时自动终止程序?

我有一个仅用于录音的VisualC++程序,有时它会突然崩溃并出现一个对话框,“VisualC++调试库”“调试断言失败”“中止”,“重试”“忽略”。我根本不需要重试或忽略,所以我只想自动运行Abort。我有一个批处理/bash文件运行以检测程序是否已结束并重新启动它,但是当出现此对话框时,程序仍在运行并且程序一直处于崩溃状态直到我注意到它。 最佳答案 运行时函数_set_error_mode()可以为您安排。你只需要这样做:_set_error_mode(_OUT_TO_STDERR);所有错误(包括由断言失败引起的错误)都会将其

ruby - 在 ruby​​ 中使用其 PID 终止进程

我试图在给定时间段后使用其PID终止一个进程,即,如果该进程持续运行超过10分钟,我必须调用一个方法来终止它。我有两个问题:首先,我无法终止进程,我正在使用:Process.kill('INT',pid)但是当我使用QUIT信号而不是时,错误不断弹出,例如Badfiledescriptor或unsupportedname'SIGQUIT'>INT.其次,如何在调用方法终止进程之前设置10分钟计时器?谢谢。 最佳答案 根据您的时间安排,您可以使用线程:Thread.newdosleep10*60beginProcess.kill('Q

asp.net - 使用 Interop 生成 `docx` 在终止 RDC 时不起作用

我有一个ASP.Net框架Web应用程序,它试图从发票创建.docx(或.pdf)文件。在我的本地机器上,在开发环境中,代码可以正常工作。但在生产服务器中,我遇到了一个问题,即访问IIS_Users以访问“MicrosoftWord97-2003文档”。我通过实现以下问题的已接受答案来解决该问题。AccessingOfficeWordobjectmodelthroughasp.net但是现在,当我关闭远程桌面连接并尝试从网站获取文件时,我从服务器收到错误500,当再次远程连接到服务器时,我可以下载文件并且我的代码在生产服务器上运行良好。换句话说,当RDP断开连接时,IIS无法访问“Mi

python - 有没有一种简单的方法可以从 Python CGI 脚本启动后台任务而无需等待它终止?

在Windows中,就是这样。我认为这个问题的答案是我需要创建一个Windows服务。对于我正在尝试做的事情,这似乎是可笑的重量级。我只是想在这里为我的经理拼凑一个小原型(prototype),我不会负责将其产品化……事实上,它甚至可能永远不会被产品化;它可能只是一些研究人员玩弄的东西。我有一个CGI脚本,它接收一个要上传的文件,将其存储到一个临时位置,然后启动一个后台进程对该文件进行一些严格的数字运算。然后一些Javascript的东西围绕调用其他CGI脚本来检查状态并根据需要更新页面。所有这一切都有效,除了该死的网络服务器不会在子进程运行时关闭连接。我已经做了一些搜索,看来Unix

windows - Windows上Perl如何处理程序异常终止

我有一个Windows上的Perl程序需要在退出时执行清理操作。我使用sigtrap编写了一个信号处理程序,但它并不总是有效。我可以拦截Ctrl-C,但如果机器重新启动或程序以其他方式终止,则信号处理程序和ENDblock都不会运行。我读过Windows并没有真正的信号,Windows上的信号处理有点像Perl中的hack。我的问题是,如何以Windows方式处理异常终止?无论程序如何或为何终止(不包括无法捕获的事件),我都想运行我的清理代码。我读过Windows使用事件而不是信号,但我找不到有关如何在Perl中处理Windows事件的信息。不幸的是,我没有从CPAN安装模块的权限,所

windows - IOCP 循环终止可能导致内存泄漏?如何优雅地关闭 IOCP 循环

我有经典的IOCP回调,它以这种方式使i/o挂起的请求出列、处理它们并释放它们:structMyIoRequest{OVERLAPPEDo;/*...otherparams...*/};boolis_iocp_active=true;DWORDWINAPIWorkerProc(LPVOIDlpParam){ULONG_PTRdwKey;DWORDdwTrans;LPOVERLAPPEDio_req;while(is_iocp_active){GetQueuedCompletionStatus((HANDLE)lpParam,&dwTrans,&dwKey,(LPOVERLAPPED*)

windows - Ctrl+C 不能可靠地终止 Windows 批处理脚本

我正在尝试编写一个批处理脚本,提示用户输入目录并将多个文件从该目录复制到另一个目录。为此,我有一个简单的循环,使用标签和set/p作为输入。问题在于,尝试通过按ctrl+c退出此循环并不总是有效。:checkloop@set/pREADMEPATH=Pleaseenterthelocationofreadme.txt:@ifnotexist"%READMEPATH%\README.txt"gotosomethingmissing@gotoallfound:somethingmissing@echoCan'tfindreadmeindirectory"%READMEPATH%"@goto

windows - 以编程方式终止并重新启动 explorer.exe 的最干净的方法是什么?

大家好我正在开发一个Windows程序,其安装需要重新启动explorer.exe。我知道“重新启动计算机以完成安装”是此处的标准方法,但我希望我的安装程序为用户提供仅重新启动资源管理器的选项,以便他们可以立即开始使用我的程序。最好的方法是什么?当然,我可以找到并终止该过程,但这似乎很恶心。是否有一些技巧可以让Explorer认为用户正在注销并干净地关闭?谢谢! 最佳答案 这是MSI安装吗?您是否考虑过使用RestartManager?重启管理器将检测哪些进程正在打开文件/句柄并需要重启,并允许您自动停止/启动这些进程而无需重启。

c++ - SHGetPathFromIDList() (和类似的)是否在其参数中放置一个终止 0?

这其实是一个关于海量winapi函数的问题。典型的MS文档说(来自http://msdn.microsoft.com/en-us/library/bb762194(VS.85).aspx):BOOLSHGetPathFromIDList(PCIDLIST_ABSOLUTEpidl,LPTSTRpszPath);pidl[in]Theaddressofanitemidentifierlistthatspecifiesafileordirectorylocationrelativetotherootofthenamespace(thedesktop).pszPath[out]Theaddr