我编写了一个向客户端发送数据的Perl脚本。它工作一段时间(从一分钟到2小时)然后下降。控制台没有错误,日志中没有错误。
我在其中添加了END
部分 - 它未执行。
我该怎么做才能找出问题所在?
答案 0 :(得分:10)
由于脚本正在向客户端写入数据,我猜它的不合时宜的死亡是由于未处理的SIGPIPE。如果是这种情况,为SIGPIPE安装信号处理程序是一种验证它的简单方法。有关Perl中信号处理程序的详细信息和示例,请查看perlipc。
答案 1 :(得分:2)
日志中没有错误,但是您可以进行更多登录以查看其确切失败的位置吗?也就是说,日志行如:
00:00:00 In section 1
00:00:05 In section 2
...
00:09:28 In section 34
然后你可以看到上次执行的部分。
如果它真的让你烦恼,你也可以尝试单步执行Perl调试器并查看是否可以重现它。您还可以尝试简化脚本,删除各个部分等,以确定是否能够确定问题。
希望有所帮助。