为什么在底层服务器上启动守护进程后网页会挂起?

发布于 2024-10-16 19:37:41 字数 714 浏览 4 评论 0原文

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

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心的位置 2024-10-23 19:37:41

您的守护进程可能没有正确分离,这个关于守护进程的答案包含了很好的步骤摘要必需的

Your daemon is probably not detaching properly, This SO Answer about daemonizing contains a good summary of the steps required

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文