Re: Calling shell script from a Servlet.
From: John C. Bollinger (jobollin_at_indiana.edu)
Date: Mon, 03 Nov 2003 10:09:25 -0500
> Hi, I'm trying to call a shell script from a standalone Java App and
> from a Servlet. I have no problems executing the two following lines
> in a regular Java program:
> Runtime runtime = Runtime.getRuntime();
> Process process = runtime.exec(" bash /usr/bin/mydir/myscript.sh");
> When I try to do the same thing from a Servlet I get nothing. Is that
> because Tomcat should be able to find a directory where shell script
> resides? Should I put a symbolic link somewhere in Tomcat home
> directory to the directory where shell script resides? Or there is
> some other problem with calling a shell script from the servlet?
> Thanks in advance.
More likely it is that bash is not in the path in the environment where
your process runs. You should specify an absolute path to it. (Always
a good idea security-wise, anyway.) You have already specified an
absolute path to the script, so finding it should not be a problem
unless Tomcat has been subjected to a chroot, or something like that.
It could, however, be an access permission issue -- the user account or
group under which Tomcat runs must have read access to the script (and
read / execute to bash, and possibly read and even execute on all the
directories from root to each).