【发布时间】:2016-10-16 01:54:11
【问题描述】:
EHLO!
这开始就像“嘿,给我 30 分钟”,但我在一天之后。 基本上我要做的是检查“/var/log/messages”30秒,当有人在此期间插入USB硬盘时,执行一些命令。
所以我使用 Per 函数“File::Tail”,有点工作,但我不知道如何运行它 30 秒,tail 一直停留在那里,直到我手动退出( 它就像 tail 命令一样工作)。我一直在寻找使用 fork 的解决方案,但仍然没有运气或经验。部分“尾”代码是这样的:
while ((defined($line=$file->read)) ) {
感谢任何帮助或提示。如果有人使用另一个函数或其他任何方法有另一个解决方案,那很好,我需要“CGI”的代码。
【问题讨论】:
-
sleep(30);在您致电$file->read之前 ;) -
F::T 不支持,因此您的选择是:1) 搜索与 F::T 执行相同操作但支持超时的模块 2) Monkeypatch F:: T 3) 重新实现具有超时功能的 F::T,4)
alarm5) 使用不涉及/var/log/messages的机制 -
这段代码似乎不太可能在 CGI 程序中运行良好。 CGI 程序 a)(通常)在远程服务器上运行,并且 b) 在等待安装 USB 记忆棒时可能会超时。你能解释更多关于你在这里实际想要实现的目标吗?我认为你走错了路。
-
用户应该按下一个按钮开始,我将执行一个至少 30 秒的 AGI,我会告诉他连接设备并检测它
标签: perl usb detect tail plug-and-play