我有 perl 脚本,它从 cgi 页面生成并成为一个独立运行的守护进程。如果从它正在使用的任何模块中调用了一个骰子,则脚本将被调用,尽管它已在 eval 块中进行了处理。但是,当我从命令提示符运行脚本时,一切都很好,并且正在处理错误。
注意:从命令行也脚本正在成为一个守护进程
我有 perl 脚本,它从 cgi 页面生成并成为一个独立运行的守护进程。如果从它正在使用的任何模块中调用了一个骰子,则脚本将被调用,尽管它已在 eval 块中进行了处理。但是,当我从命令提示符运行脚本时,一切都很好,并且正在处理错误。
注意:从命令行也脚本正在成为一个守护进程
抱歉,这里没有真正的答案,但有些事情需要调查......
如果您从 mod_perl 生成作业,请记住它比平常更复杂。您需要关闭文件描述符,httpd/mod_perl 将不止打开 0、1 和 2。我们最终编写了一个刚刚关闭 0 到 255 的循环。我也认为stdout
不是 1 从内存中。
但不确定为什么 eval 不起作用。您是否使用 生成脚本exec
?在这种情况下,它应该与从 shell 运行它相同。当您说它“被杀死”时,您的意思是骰子导致脚本退出(好像没有评估一样)?或者是其他东西。如果它是别的东西,你可能会从 mod_perl 正在运行的 httpd 进程继承信号处理程序吗?