我有一个Windows Server 2003(企业,SP2)。
我的理解是,用户创build的任何进程都将在用户login帐户时终止。 但是没有发生。 我通过pipe理员帐户login。 开始一个简单的java进程和注销。 但是这个过程并没有死亡。
有什么configuration这个或什么的?
我大多是一个软件程序员,并没有太多的服务器,所以我卡住了。 我发现注销时,1)Win32应该发送一个CTRL_LOGOFF_EVENT给该用户启动的所有进程。 2)JVM应该处理这个事件并终止虚拟机。
但我不明白为什么我的java进程没有被杀害,当我注销。
任何想法!!!
你可以closures你的进程通常没有注销或挂在这种情况呢? 你能testing你的代码来调查它被“卡住”的位置,以及它是否得到你期望的信号? 一些Sysinternals过程实用程序链接文本可能会显示您的过程正在做什么,当你期望它终止。 你可以把一个debugging器附加到重新login后,看看它在做什么?
不过,我发生了一些类似的事情(不是java),但事实certificate,我无法通过注销来停止这个过程,实际上是在该服务器上运行的服务。
可能是这个过程被卡住了,或者没有正确处理事件。
看看这可以帮助: http : //www.windowsitpro.com/article/configuration/how-can-i-automatically-kill-hung-processes-when-i-logoff-.aspx
如果系统试图在驱动程序中运行某些代码,或者如果另一个进程仍然打开了句柄,系统将尝试终止该进程。
你如何检查过程没有被杀害? 你的java程序在做什么?