hui zhang wrote:
Zack Grafton wrote:
hui zhang wrote:
Zack Grafton wrote:
hui zhang wrote:
Hi Everybody,

Now I am trying to launch an external application, for example, "top" ,in my web application, and killing it by PID after a while. But when I execute Runtime.getRuntime.exec("top") in my JSP page or Servlet, Tomcat is stuck in that page and do not display anything because it can not stop running until that "commnad" is terminated, which means it waiting for the response from Runtime.getRuntime.exec("top"). It seems that it will run forever. Is there any solution to solve this problem? I mean that JSP page can execute the following code no matter if it finish the process is done.

BTW, I do not use System.exit() in my program. It may cause Security Manager problem.
Thanks and best regards,

Hui

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Hey,

I'm new to the list and all, but you might want to try executing "top" in batch mode. The command line option is -b on my gentoo linux box. Also, be careful of executing commands from applets and such. Another thing might be user permissions as well. You could try executing the command and redirecting the output to a file and parsing the file instead.

Zack Grafton

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
Hi,

"TOP" is only an example in this case. Actually I am running some program which can not stop running until terminating it by "Control + C". In this case, Tomcat can not run the following code if the external application does not stop. I need a solution to make my webapp running in this case. Thank you.

Regards,

Hui




---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Hui,

You could check out the javadoc for the java.lang.Process class. You would need to do something like:

Process process = Runtime.getRuntime().exec("command");

process.getInputStream();
process.getOutputStream();

Just remember to wrap the streams appropriately and you should be able to read the stdin and stdout of the program. That should allow you to send the <control>+C signal to the program.


Zack Grafton


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
Hi,

I can get the InputStream from process object. How can I send Control+C to the console next? I can not send another command to console until this command is terminated.

BTW, what is the string format of "Control + C"?

Thanks!

Regards,

Hui

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Hui,

You might also want to look at the destroy method of the Process class.

Zack

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to