Question on SSH hang on exit when running Java background process



hi, all

I'm not sure if i should ask this question in this maillist, i am sorry if this mail bothered you. :)

My problem is that my SSH client hang on "exit" if I run a java program as a background process.
Here is the sample java program:

public class Test
{
public static void main(String argv[])
{
try{
while(true) {
System.out.println("Hello world");
Thread.sleep(1000);
}
} catch(Exception ex) {
ex.printStackTrace();
}
}
}

then I save it as Test.java, and compile, run it as follow in a terminal connected by ssh(my ssh client is putty 0.58):

javac Test.java
java -cp . Test &
exit

then putty hang, it seems that the SSH connection is still alive and waiting for the java program to exit.
If a close the putty and login the server again, i can see the program is still running.

This problem puzzled me a long time, since i have to run a server program written by java and I can't
exit ssh client normally. At first i guess it was caused by signals, by it seems that when i type "exit" even
i close the ssh client, the program didn't get a SIGHUP signal, or it would exit by receiving a SIGHUP.

Anyway, could anyone help me on this problem?



Relevant Pages