Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中延迟exec命令_Php_Command_Exec_Delay_Iptables - Fatal编程技术网

如何在php中延迟exec命令

如何在php中延迟exec命令,php,command,exec,delay,iptables,Php,Command,Exec,Delay,Iptables,我知道这种问题已经被问过很多次了,但我还没有找到一个合适的答案。这是: 我在debian上有一个站点-apache/php/mysql。 我已经设法允许www数据执行iptables命令。现在,我需要找出是否可以在不让用户/浏览器等待的情况下延迟此类命令 重点是什么当用户进行身份验证时,php将获得其公共IP地址,并在防火墙中打开一个端口。我希望这个端口打开(比方说)2分钟(足够建立VPN连接的时间),然后我希望该端口关闭 所以,基本上,我希望PHP执行一个命令,然后,在2分钟后,执行另一个命令

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

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

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

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

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

这可能吗


多谢各位

让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中,这将不起作用(默认情况下在我的电脑上)