Linux 从perl守护进程内的信号处理程序返回值
如何向从守护进程内的信号处理程序启动守护进程的进程返回值Linux 从perl守护进程内的信号处理程序返回值,linux,perl,signals,Linux,Perl,Signals,如何向从守护进程内的信号处理程序启动守护进程的进程返回值 sub _fork { my $pid = fork; $pid; } sub daemonize_monitor_sigio { _fork and return; SIG{IO} = sub{ print "caught sigio"; $ret = {} ...#do some processing #wants to return $ret here; } w
sub _fork
{
my $pid = fork;
$pid;
}
sub daemonize_monitor_sigio
{
_fork and return;
SIG{IO} = sub{
print "caught sigio";
$ret = {}
...#do some processing
#wants to return $ret here;
}
while(1)
{
;
}
}
daemoniz_monitor_sigio();
信号处理程序的问题是,它们非常简单。它们基本上是来自内核的中断,传递给进程 处理程序可以更改流程内的状态。但是因为您事先已经
fork()
ed了,所以您有一个父进程和一个子进程,这两个进程没有任何共享状态。因此,从一个进程到另一个进程的“信令”是完全独立的-在最简单的级别上-您可以向父进程发送另一个kill
信号-并通过
不过,对于更复杂的IPC,您将看到。。。好吧,读一下perlipcdoc,找出最合适的方法 “称为守护进程”是什么意思?“向进程返回值”是什么意思?请更好地指定您的问题。传递信息的方法很多,在特定条件下,两者都有很多失败的方法。