【发布时间】:2025-12-30 23:55:16
【问题描述】:
我正在尝试重新读取 SIGHUP 上简单 perl 守护程序的配置文件。 我在努力
use sigtrap qw/handler rereadconf HUP/;
但在执行“rereadconf”过程后进程停止 我也在尝试
%SIG{HUP} = \&rereadconf;
sub rereadconf{
.... mycode
print "procedure executed\n";
};
但结果是一样的,执行过程程序停止后。 那么我怎样才能让这个过程在信号处理后继续执行呢?
【问题讨论】:
-
程序在您退出处理程序后立即恢复。如果它实际上是由信号而不是您在处理程序中执行的操作引起的,那么最好的猜测是:您中断了一个不准备被中断的 C 库调用。它需要更好的错误处理。
-
它在哪里“停止”?
-
@ikegami 会不会是因为使用了Socket?所以我需要处理错误?
-
程序不会停止。他们阻止等待某事。你的程序还在等什么?
-
@ikegami 客户端连接时循环等待,如果你想看源码link