Perl exec(‘/usr/bin/php -v’)挂在CentOS 6.6上,除非STDIN先关
发布时间:2020-12-15 22:04:01 所属栏目:大数据 来源:网络整理
导读:我的问题是,这是预期的(为什么?)和/或这种行为在其他系统上看到吗? 环境: # cat /etc/*-releaseCentOS release 6.6 (Final)...# perl -v This is perl,v5.10.1 (*) built for x86_64-linux-thread-multi...# php -vPHP 5.4.41 (cli) (built: May 14 2015
我的问题是,这是预期的(为什么?)和/或这种行为在其他系统上看到吗?
环境: # cat /etc/*-release CentOS release 6.6 (Final) ... # perl -v This is perl,v5.10.1 (*) built for x86_64-linux-thread-multi ... # php -v PHP 5.4.41 (cli) (built: May 14 2015 23:15:28) ... mini.pl: #!/usr/bin/perl exec('/usr/bin/php -v'); 运行它并查看挂起的PHP进程: # perl mini.pl & [2] 16958 [1] Killed perl mini.pl # ps ax | grep 16958 16958 pts/2 T 0:00 /usr/bin/php -v 16960 pts/2 S+ 0:00 grep 16958 [2]+ Stopped perl mini.pl 但是如果我关闭STDIN: mini.pl: #!/usr/bin/perl close(STDIN); exec('/usr/bin/php -v'); 运行正常 # perl mini.pl & [1] 16976 # PHP 5.4.41 (cli) (built: May 14 2015 23:15:28) ... [1]+ Done perl mini.pl # ps ax | grep 16976 16978 pts/2 S+ 0:00 grep 16976 其他注意事项 >我无法在Mac OS X上重现这种挂起的行为(perl 5.18.2,php 5.5.24) 谢谢, 解决方法
我刚刚在Ubuntu 14.04和RHEL 6.7上进行了测试,无法重现此问题.
我怀疑有一个错误,导致它打印版本,并尝试处理STDIN作为PHP代码.挂起时,尝试按Control-D,或者输入几行HTML / PHP,然后按Control-D查看输入是否被处理. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |