我有一个可执行文件,我想使用超时来运行它。我使用的是linux服务器和php。以下是我使用的代码
exec("timeout 2s ./exe < input > output");
它只是生成没有内容的输出文件。但如果我删除超时如下:
exec("./exe < input > output");
然后它在我的输出文件中显示了预期的输出。
为什么会发生这种情况。我使用超时的方式正确吗。如何修复?
尝试以以下方式更改命令:
exec("timeout 2s ./exe < input > output 2>&1");
可能是timeout
不在PATH
上。
我认为您的问题可能是系统中不存在timeout
命令,或者PHP找不到它,因为它不在您的PATH中。