微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从命令提示符中杀死在wine中运行的进程

(我不是一个Linux或葡萄酒专业人员…他们是由一个IT人员build立的……我只是一个Java人)我正在开发一个运行在Linux上的Java应用程序。 它产生了几个线程,做同样的事情,即产卵进程(java.lang.Process),一些Linux,通过葡萄酒一些Windows。 我的一些线程将在葡萄酒调用期间无限期地挂起。

因为我有几个线程去调用相同的Linux / Windows应用程序,我不能只是grep的酒输出ps和杀死,因为我可以杀死葡萄酒进程是好的。

有一些使用Googlesearch,通过反思,我能够从过程中获得pid,但它不符合使用ps的Linux pid,所以我认为这是一个在酒中运行的pid。

(最后的问题…)有没有办法杀死一个进程在葡萄酒引用它的PID?

如何从Linux上的Python调用Wine的DLL?

双向嗅探/窥探ALSA MIDI系统交换

是否有可能在Linux中开发DirectX应用程序?

系统函数调用asynchronous?

如何在Wine下运行msi文件

Wine是否可以使用Simulink Real-Time C API?

在Wine中构buildMSI

将COM对象暴露给在Wine / Linux中运行的应用程序

在Ubuntu上无法看到在Unity 5上运行wine的文本

bash输出到文件

至少在最近的版本中,Wine自带有taskmgr和taskkill ,类似于Windows上同名的程序。

要杀死所有的Wine进程,使用wineserver -k (全部在同一个WINEPREFIX环境中)。

为了查杀特定的进程(通过winedbg --command "info proc" ),你可以按以下方式运行winedbg :

然后按以下方式运行winedbg :

$ winedbg Wine-dbg>info proc pid threads executable (all id:s are in hex) 0000000d 4 'taskmgr.exe' 0000000e 4 'services.exe' 0000001a 3 _ 'plugplay.exe' Wine-dbg>attach 13 0x9f68ad05 read$UNIX2003+0x5 in libsystem_kernel.dylib: call 0x9f68b40c _sysenter_trap in libsystem_kernel.dylib Wine-dbg>kill Wine-dbg>quit

由于attach接受一个十进制值,所以你需要把它的pid从十六进制转换成以下例子在Bash shell中:

echo $(( 0x0000000d ))

当你kill -3 PID ,其中PID是你感兴趣的Wine进程id时,你将在启动该进程的控制台上获得JVM线程转储。 该转储将包含具有其当前状态的线程列表,并且将包含等于ps -ef -T输出中的SPID字段的nid字段。

如果您太沮丧,请尝试使用Windows任务管理器。 它应该能够看到葡萄酒过程是原生的。 (当然不会看到别人,所以总数不会达到100%)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐