PHP在运行后台进程的bash脚本上调用shell_exec超时

特雷尔

我有一个bash脚本,其中有几行类似于以下内容

echo "Do something"
/bin/sh -c 'echo $$>pidfile && exec "command"' &
echo "Ran Command">/path/to/outputfile.txt
exit 0

然后我从PHP脚本中调用它
return shell_exec("/path/to/bash/script arguments");

现在,当我这样做时,命令将成功运行,并且outputfile.txt包含“ Ran命令”。

但是,PHP脚本会在10秒钟后超时。bash脚本运行大约需要2-3秒

如果我将行更改为 return shell_exec("/path/to/bash/script arguments >/dev/null 2>&1");

然后执行,PHP脚本不会超时。

我知道为什么重定向输出可以使PHP继续执行,但是我不知道为什么PHP首先要超时以要求执行此操作。有人可以给我一些帮助吗?

百万美元以下

测试这两个版本,您会得到:

test1.sh /bin/sh -c 'sleep 10' >/dev/null 2>&1 &

test2.sh /bin/sh -c 'sleep 10' &

用php在命令行上都运行

test1.php <?php shell_exec('test1.sh');

test2.php <?php shell_exec('test2.sh');

并看到差异。

test2.sh需要10秒钟的时间,而test1.sh的工作方式就像您的

return shell_exec("/path/to/bash/script arguments >/dev/null 2>&1");

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从PHP内置的Web服务器使用shell_exec运行后台进程

来自分类Dev

结束 shell_exec 进程 PHP

来自分类Dev

在Linux中脚本执行结束后,php exec或shell_exec不会终止其进程

来自分类Dev

Bash脚本检查特定的php进程是否正在运行?

来自分类Dev

从php shell_exec()运行node js

来自分类Dev

在后台运行shell_exec()并随后获取其输出

来自分类Dev

尝试从.desktop文件中的Exec =行获取进程名称。在运行Exec =的bash脚本时出错

来自分类Dev

php exec / shell_exec / system / popen / proc_open在Linux上运行调用脚本本身的次数无限制

来自分类Dev

使用PHP shell_exec()执行BASH脚本,无法写入文件

来自分类Dev

php-使用shell_exec运行shell命令

来自分类Dev

终止在后台运行的bash shell脚本

来自分类Dev

从php exec()运行bash脚本

来自分类Dev

从php exec()运行bash脚本

来自分类Dev

使用shell_exec从PHP内调用Python

来自分类Dev

在PHP中从shell_exec运行sed命令

来自分类Dev

从PHP在后台运行Shell脚本

来自分类Dev

php,bash,sshpass,scp无法通过shell_exec工作

来自分类Dev

用于检查进程是否正在运行的Shell脚本

来自分类Dev

在 shell 脚本中查找正在运行的进程

来自分类Dev

备用bash脚本,用于检查进程是否正在运行

来自分类Dev

从shell脚本调用并运行php脚本

来自分类Dev

从shell脚本调用并运行php脚本

来自分类Dev

动态创建脚本的Shell_exec与else

来自分类Dev

如何从PHP / bash脚本启动/结束后台进程?

来自分类Dev

php exec并运行bash脚本直到完成

来自分类Dev

npm安装无法通过php system()运行(exec / shell_exec)

来自分类Dev

在调用shell脚本中终止正在运行的程序

来自分类Dev

RGD:运行exec或系统调用时,PHP exeed超时

来自分类Dev

在后台运行Shell脚本

Related 相关文章

  1. 1

    从PHP内置的Web服务器使用shell_exec运行后台进程

  2. 2

    结束 shell_exec 进程 PHP

  3. 3

    在Linux中脚本执行结束后,php exec或shell_exec不会终止其进程

  4. 4

    Bash脚本检查特定的php进程是否正在运行?

  5. 5

    从php shell_exec()运行node js

  6. 6

    在后台运行shell_exec()并随后获取其输出

  7. 7

    尝试从.desktop文件中的Exec =行获取进程名称。在运行Exec =的bash脚本时出错

  8. 8

    php exec / shell_exec / system / popen / proc_open在Linux上运行调用脚本本身的次数无限制

  9. 9

    使用PHP shell_exec()执行BASH脚本,无法写入文件

  10. 10

    php-使用shell_exec运行shell命令

  11. 11

    终止在后台运行的bash shell脚本

  12. 12

    从php exec()运行bash脚本

  13. 13

    从php exec()运行bash脚本

  14. 14

    使用shell_exec从PHP内调用Python

  15. 15

    在PHP中从shell_exec运行sed命令

  16. 16

    从PHP在后台运行Shell脚本

  17. 17

    php,bash,sshpass,scp无法通过shell_exec工作

  18. 18

    用于检查进程是否正在运行的Shell脚本

  19. 19

    在 shell 脚本中查找正在运行的进程

  20. 20

    备用bash脚本,用于检查进程是否正在运行

  21. 21

    从shell脚本调用并运行php脚本

  22. 22

    从shell脚本调用并运行php脚本

  23. 23

    动态创建脚本的Shell_exec与else

  24. 24

    如何从PHP / bash脚本启动/结束后台进程?

  25. 25

    php exec并运行bash脚本直到完成

  26. 26

    npm安装无法通过php system()运行(exec / shell_exec)

  27. 27

    在调用shell脚本中终止正在运行的程序

  28. 28

    RGD:运行exec或系统调用时,PHP exeed超时

  29. 29

    在后台运行Shell脚本

热门标签

归档