如何通过Apache在另一个进程中运行CGI脚本

时间:2011-05-10 18:25:58

标签: java apache memory process cgi

我有一个执行非常密集的Java应用程序的CGI脚本:

start.cgi
#!/bin/sh
cd /var/server/; screen -d -m java -Xmx800M -Xms800M -jar jarfile.jar > /dev/null 2>&1 &
echo "Server command executed.";

这可以通过在互联网浏览器和SSH会话中导航到它来执行。

但是当通过互联网浏览器导航到它时,它似乎在apache进程下运行... 输出top
  PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7651 apache 24 0 1149m 38m 9012 S 0.0 2.5 0:01.42 java

通过SSH会话top输出时运行:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7685 root 23 0 1163m 205m 9432 S 12.3 13.6 0:06.03 java

我相信CGI脚本在apache进程下运行...
有人可以指出我做错了什么或指出我正确的方向?

谢谢!
 贾斯汀

1 个答案:

答案 0 :(得分:0)

你可能需要chmod你的脚本文件来将uid设置为root - 但我不得不说这不是一个好主意。作为apache而不是root运行的作业是否存在问题?当然,它从ssh会话以root身份运行的唯一原因是因为您已以root用户身份登录?