ID: 16548 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Feedback +Status: Open Bug Type: Apache related Operating System: RED HAT Linux 7.2 PHP Version: 4.1.2 New Comment:
The same with: system("exec $DLC/bin/_mprshut $CADB/$DB -C watchdog 2>&1 </dev/null"); This _mprshut needs no input. (I mail this problem also to the developer of _mprshut,Progress Database.) The rest of the php script finishes but i can't open a new page and have to close this session. In the moment i have no further idea to separate this command from the actual www session. I tried "at", that works but +1 minute is too late. :-( Previous Comments: ------------------------------------------------------------------------ [2002-04-11 11:55:05] [EMAIL PROTECTED] Try this: system("exec $DLC/bin/_mprshut $CADB/$DB -C watchdog 2>&1 </dev/null"); ------------------------------------------------------------------------ [2002-04-11 11:46:40] [EMAIL PROTECTED] Hi, system("exec $DLC/bin/_mprshut $CADB/$DB -C watchdog 1>/dev/null 2>&1 &"); has the same effect! _mprshut is a daemon that ended in a second. Please notice: The script doesn't hungs the rest works fine after system. I can't open any new page after accessing this script an _mprshut listen on port 80. On HP-UX the Apache still works fine with a listening _mprshut. Stefan ------------------------------------------------------------------------ [2002-04-11 11:37:33] [EMAIL PROTECTED] Hmm, on second thoughts, it sounds like your OS is broken. Does the equivalent script written in perl do the same? ------------------------------------------------------------------------ [2002-04-11 11:35:10] [EMAIL PROTECTED] Please read the docs about system(). System executes the process and waits for it to complete before returning. You need to append an & character to your command to cause it to run in the background. ------------------------------------------------------------------------ [2002-04-11 08:27:19] [EMAIL PROTECTED] This are my simple commands: system("$DLC/bin/proserve $CADB/$DB 2>&1"); system("exec $DLC/bin/_mprshut $CADB/$DB -C watchdog 2>&1"); The first command works fine but the second hangs the actual httpd session. It executes o.k. but tries to get the actual webserver process: [root@linux datenbank]# lsof | grep www httpd 30824 root 16u IPv4 28772 TCP *:www (LISTEN) httpd 30825 root 16u IPv4 28772 TCP *:www (LISTEN) httpd 30826 root 16u IPv4 28772 TCP *:www (LISTEN) httpd 30827 root 16u IPv4 28772 TCP *:www (LISTEN) httpd 30828 root 16u IPv4 28772 TCP *:www (LISTEN) httpd 30829 root 16u IPv4 28772 TCP *:www (LISTEN) httpd 30831 root 16u IPv4 28772 TCP *:www (LISTEN) httpd 30835 root 16u IPv4 28772 TCP *:www (LISTEN) _mprshut 31169 root 16u IPv4 28772 TCP *:www (LISTEN) This process is the parent of 1: [root@linux datenbank]# ps -ef | grep 31169 root 31169 1 0 13:14 ? 00:00:00 /home/dlc83e/bin/_mprshut /home/ [root@linux datenbank]# ps -ef | grep 30835 root 30835 30824 0 10:59 ? 00:00:00 /usr/local/apache/bin/httpd Then my actual session of my IE hangs and i only can lose it. The php script is ended because i got </body> and the IE loading bar vanished. I can't restart the server because this process 31169 holds port 80 open. I use the same script on SCO, Reliant Unix and HP-UX11. On HP-UX11 the _mprshut also listen on port 80 but on a different session because the website still reacts. The apache server restart is impossible before killing this process manually. Any ideas where i can search the problem ?? ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=16548&edit=1