为什么在底层服务器上启动守护进程后网页会挂起?
我想通过一个简单的网页启动/停止我的家庭服务器上的守护进程。
html 是这样的:
<form action="http://192.168.2.101/cgi-bin/managedaemon.pl" method="post">
<input type="submit" value="Start" name="start"/>
<input type="submit" value="Stop" name="stop"/>
</form>
Managedaemon.pl 是这样的:
#!/usr/bin/perl
system("/usr/local/theprog/startserver");
print "Content-type:text/html\r\n\r\n";
print "<html>";
...
启动服务器是这样的:
#!/bin/bash
cd /usr/local/theprog
./theprogserver -daemon
当我从命令行执行 Perl 脚本时,守护进程会正确启动,并且脚本会终止。
但是,当我从网络浏览器触发它时,守护进程进程会启动,但页面会挂起,直到刚刚启动的守护进程被终止。
请让我知道如何避免这种“悬挂”。
谢谢, 马顿
I would like to start/stop a daemon process on my home server via a simple web page.
The html is like this:
<form action="http://192.168.2.101/cgi-bin/managedaemon.pl" method="post">
<input type="submit" value="Start" name="start"/>
<input type="submit" value="Stop" name="stop"/>
</form>
The managedaemon.pl is like this:
#!/usr/bin/perl
system("/usr/local/theprog/startserver");
print "Content-type:text/html\r\n\r\n";
print "<html>";
...
And the startserver is like this:
#!/bin/bash
cd /usr/local/theprog
./theprogserver -daemon
When I execute the Perl script from the command line, the daemon process is started properly and the script is terminated.
However, when I trigger it from the web browser, the daemon process is started, but the page hangs until the just started daemon is killed.
Please let me know how could I avoid this 'hanging'.
Thanks,
Marton
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您的守护进程可能没有正确分离,这个关于守护进程的答案包含了很好的步骤摘要必需的
Your daemon is probably not detaching properly, This SO Answer about daemonizing contains a good summary of the steps required