gpt4 book ai didi

java - 如何杀死一个挂起的 Java 程序(在 Windows 中)?

转载 作者:行者123 更新时间:2023-12-01 10:19:38 25 4
gpt4 key购买 nike

假设在 Java 中我有一个简单的 Echo 客户端/服务器对。我启动了服务器进程,但从未真正启动过客户端进程。

我想做的是有第三个程序(称之为“Parent”),它会在闲置 30 秒后自动终止该服务器程序。

我可以使用 Powershell 来执行此操作吗?或者我需要使用 C 或其他编程吗?

最佳答案

是的,只要你有一个好的方法:1)唯一标识服务器进程2)判断服务器空闲

如果永远不会有两个(或更多)服务器进程实例,那么您可以通过名称来标识进程(确保您的进程具有唯一的名称!)

确定服务器空闲可能很棘手(因此实现服务器自行停止而不诉诸“父”进程的注释)。但是,如果服务器在 Activity 时是内存或 CPU 密集型的,您可以利用它来区分空闲和繁忙。您可以使用 get-process (gps) 来确定进程当前的 CPU 和内存使用情况。诀窍是如果它当前看起来空闲,就知道它已经空闲了多长时间。为了可靠地做到这一点,您需要比服务器处理请求的频率更频繁地轮询 gps。否则,您可能会在服务器繁忙之前轮询,然后服务器繁忙,然后在服务器空闲时再次轮询。但你会认为它一直闲置。

您可以通过让服务器在知道自己已空闲 30 秒后更改某些内容(例如窗口标题)来避免上述困境。 (但是如果你这样做,为什么不让服务器自行终止呢?)

一旦 PS 脚本确定服务器空闲,则 get-process -name yourServerProcess|stop-process 将停止服务器进程。指定“yourServerProcess”,末尾不带 .EXE。如果出现权限错误,请以管理员身份运行 PS。

关于java - 如何杀死一个挂起的 Java 程序(在 Windows 中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35687091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com