【问题标题】:Why hangs the web page after it started a daemon on the underlying server?为什么在底层服务器上启动守护进程后会挂起网页?
【发布时间】:2011-06-24 09:33:36
【问题描述】:

我想通过一个简单的网页在我的家庭服务器上启动/停止一个守护进程。

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 脚本时,守护进程正常启动,脚本终止。
但是,当我从网络浏览器触发它时,守护进程会启动,但页面会挂起,直到刚刚启动的守护进程被杀死。

请告诉我如何避免这种“挂起”。

谢谢, 马顿

【问题讨论】:

    标签: html perl cgi daemon


    【解决方案1】:

    您的守护进程可能没有正确分离,SO Answer about daemonizing 包含所需步骤的一个很好的总结

    【讨论】:

    • 或者只是将重定向添加到 bash 脚本
    • 我相信你是对的,这是一个不正确的分离问题。由于该软件不是开源的,我无法修复它。但是,/sbin/start-stop-daemon 解决了我的问题。谢谢!
    猜你喜欢
    • 2012-09-30
    • 2011-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    相关资源
    最近更新 更多