php exit(1) 不能退出用popen启动的进程

发布网友 发布时间:2022-04-06 00:40

我来回答

2个回答

懂视网 时间:2022-04-06 05:01

php中popen不能使用的解决方法:通过执行【chown www.www -R dir】命令来改变目录或文件的所用者,或者执行【chmod 7】命令改变文件权限。

原因分析:

(推荐教程:php视频教程)

1、权限问题

如果进行文件/目录 的操作,需要注意php是否有操作的权限,可以使用chown 和chmod两个命令来进行所有者和操作权限的修改。chown www.www -R dir 改变目录或文件的拥有者 chmod改变文件权限 chmod 7。

2、不要使用缩写或者省略参数

在服务器上,使用ll命令,或者svn up更新当前目录,都是没问题的,但是在php中使用则均未获得任何结果,猜测为两者对命令的分析处理不一样,也即是执行环境,不是简单地php把此命令传递给shell。以后使用时,尽量加上所有需要的参数。

热心网友 时间:2022-04-06 02:09

看来你对 PHP 的理解有偏差啊。。PHP 和系统程序是两回事。。你用 popen 只是让 PHP 对系统下令执行了某个功能。之后 PHP 等待执行结果。

也就是说,PHP 只是一个下命令的人,执行这个事情的是操作系统。

你用 exit 只能中断 PHP 的等待,而已经执行的应用程序方面,如果它不能自己结束运行,那你得用另一个命令去 kill 了它。追问可能是我没描述清楚:
比如我用popen启动一个shell脚本。php进程号是1,shell进程号是2.
我用exit退出了php,但是进程号为1的进程还在

追答PHP 是会等待被它启动的程序执行结束的。。如果 shell 永远不结束。那 PHP 进程也会一直停在那里。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com