HTTP服务器与notice: Process Backgrounded
终端分离。如何让它保持前景?
代码:
#!/usr/bin/env perl
use warnings;
use strict;
use XML::Compile::WSDL11;
use XML::Compile::SOAP11;
use XML::Compile::Transport::SOAPHTTP;
use XML::Compile::SOAP::Daemon::NetServer;
my $daemon = XML::Compile::SOAP::Daemon::NetServer->new;
my $wsdl = XML::Compile::WSDL11->new("def.wsdl");
$daemon->printIndex();
$daemon->run(
name => 'server',
host => 'localhost',
port => 7111,
min_servers => 1,
max_servers => 1,
min_spare_servers => 0,
max_spare_servers => 0);
答案 0 :(得分:4)
XML :: Compile :: SOAP :: Daemon :: NetServer使用Net::Server作为服务器实现。有configuration option background
in Net::Server似乎相关。它默认为undef
,这意味着保持在前台。
指定服务器是否应在bind方法之后进行分叉以从命令行释放自身。默认为undef。如果设置了setsid,则进程也将是后台。
在XML :: Compile :: SOAP :: Daemon :: NetServer的文档中搜索 background 时,你会发现Configuration section,它引用了{{1设置。
Net :: Server的一些常规配置选项具有不同的默认值。另请参阅有关日志记录的下一部分。
background
因此,默认情况下,它设置为true值,服务器将进入后台。这应该很容易改变。
Key Value New default
setsid boolean true
background boolean true
现在服务器将保留在前端,不会分叉,并且很可能一次只处理一个请求。