Как запустить скрипт CGI в другом процессе через Apache - PullRequest
0 голосов
/ 10 мая 2011

У меня есть CGI-скрипт, который выполняет очень интенсивное Java-приложение:

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

Это выполняется просто отлично, перейдя к нему в интернет-браузере и через сеанс SSH.

Но если запустить его, перейдя к нему через интернет-браузер, кажется, что он работает в процессе apache ... Выход top:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND<br> 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<br> 7685 root 23 0 1163m 205m 9432 S 12.3 13.6 0:06.03 java

Я полагаю, что CGI-скрипт выполняется в процессе apache ...
Может кто-нибудь указать, что я сделал неправильно, или указать правильное направление?

Спасибо!
Джастин

1 Ответ

0 голосов
/ 10 мая 2011

Возможно, вам понадобится chmod вашего файла сценария, чтобы установить uid как root - но я бы сказал, что это не очень хорошая идея. Есть ли проблема в работе, выполняющейся как apache, а не как root? Конечно, единственная причина, по которой он запускается с правами root из сеанса ssh, заключается в том, что вы вошли в систему как root?

...