-1

我知道这种问题已经被问过很多次了,但我还没有找到合适的答案。这里是:

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

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

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

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

这可能吗?

谢谢你。

4

3 回答 3

3

使用at

shell_exec('echo "iptables --something 1.2.3.4" | at now + 2 minutes');
于 2013-03-06T23:26:54.763 回答
2

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

于 2013-03-06T23:18:50.467 回答
0

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

exec("/usr/bin/php script.php &");
于 2013-03-06T23:26:38.253 回答