如何在php中延迟exec命令

时间:2013-03-06 23:16:37

标签: php command exec delay iptables

我知道很多次都会问这个问题,但我还没找到合适的答案。这是:

我有一个网站 - debian上的apache / php / mysql。 我已经设法允许www-data执行iptables命令。现在我需要找出是否可以在不使用户/浏览器等待的情况下延迟这样的命令。

重点是什么? - 当用户验证php时,将获取其公共IP地址,并将在防火墙中打开一个端口。我希望这个端口打开(让我们说)2分钟(足够的时间来建立VPN连接),然后我想要关闭端口。

所以,基本上,我希望PHP执行一个命令,然后在2分钟后执行另一个命令 - 所有这些都不会让浏览器等待那两分钟。

从用户的角度来看:John在test.com上进行身份验证,并立即关闭其浏览器并启动其vpn连接。如果他在2分钟后关闭VPN连接,他必须再次登录。

这可能吗?

谢谢。

3 个答案:

答案 0 :(得分:3)

使用at

shell_exec('echo "iptables --something 1.2.3.4" | at now + 2 minutes');

答案 1 :(得分:2)

有php执行一个bash脚本,在睡眠2分钟后为你运行iptables命令吗?

答案 2 :(得分:0)

将其作为单独的脚本运行,不要等待它完成,

exec("/usr/bin/php script.php &");