如何在php中延迟exec命令
我知道这种问题已经被问过很多次了,但我还没有找到一个合适的答案。这是: 我在debian上有一个站点-apache/php/mysql。 我已经设法允许www数据执行iptables命令。现在,我需要找出是否可以在不让用户/浏览器等待的情况下延迟此类命令 重点是什么当用户进行身份验证时,php将获得其公共IP地址,并在防火墙中打开一个端口。我希望这个端口打开(比方说)2分钟(足够建立VPN连接的时间),然后我希望该端口关闭 所以,基本上,我希望PHP执行一个命令,然后,在2分钟后,执行另一个命令——所有这些都不会让浏览器等待这两分钟 从用户的角度来看:John在test.com进行身份验证,并立即关闭浏览器并启动vpn连接。如果他在2分钟后关闭VPN连接,他必须再次登录 这可能吗如何在php中延迟exec命令,php,command,exec,delay,iptables,Php,Command,Exec,Delay,Iptables,我知道这种问题已经被问过很多次了,但我还没有找到一个合适的答案。这是: 我在debian上有一个站点-apache/php/mysql。 我已经设法允许www数据执行iptables命令。现在,我需要找出是否可以在不让用户/浏览器等待的情况下延迟此类命令 重点是什么当用户进行身份验证时,php将获得其公共IP地址,并在防火墙中打开一个端口。我希望这个端口打开(比方说)2分钟(足够建立VPN连接的时间),然后我希望该端口关闭 所以,基本上,我希望PHP执行一个命令,然后,在2分钟后,执行另一个命令
多谢各位 让php执行一个bash脚本,在睡眠2分钟后为您运行iptables命令?将其作为单独的脚本运行,不要等待它完成
exec("/usr/bin/php script.php &");
在处使用:
shell_exec('echo "iptables --something 1.2.3.4" | at now + 2 minutes');
这不是理想的解决方案,但只要max_execution_time
超过2分钟,就应该可以工作。没错,根据任务的不同,我通常使用perl脚本而不是php。如果用户“www data”位于/etc/at.deny中,这将不起作用(默认情况下在我的电脑上)