脚本宝典收集整理的这篇文章主要介绍了PHP proc_open bash vs dash,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
<?PHP $piPEs = array(); $p = PRoc_open('cat',array(0 => STDIN,1 => STDOUT,2 => STDERR),$pipes); fgetc(STDIN);
当/ bin / sh符号链接到/ bin / dash(Debian默认值)时,cat会在shell中执行:
30760 pts/0 S+ 0:00 | \_ PHP f.PHP 30761 pts/0 S+ 0:00 | \_ sh -c cat 30762 pts/0 S+ 0:00 | \_ cat
当/ bin / sh链接到/ bin / bash但是,cat是PHP的直接子代:
30786 pts/0 S+ 0:00 | \_ PHP f.PHP 30787 pts/0 S+ 0:00 | \_ cat
这是非常恼人的不一致性,这使得无法可靠地发送产生过程的信号(因为信号有时被shell接收).
为什么proc_open的行为会有所不同,具体取决于/ bin / sh指向的位置?
有没有办法不运行shell,即使/ bin / sh不是bash?
以上是脚本宝典为你收集整理的PHP proc_open bash vs dash全部内容,希望文章能够帮你解决PHP proc_open bash vs dash所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。