运行运行运行bash脚本的Python脚本的PHP脚本,挂起bash

时间:2014-10-09 18:54:27

标签: php python bash shell

我有一个Python脚本,它编码视频,然后调用shell脚本,将新视频上传到dropbox。它在命令行中运行良好,但我需要这样做才能让别人执行它,所以我有一个调用python脚本的PHP脚本。

我不希望PHP脚本永远运行(它需要15-30分钟才能完成),我只是想让它启动python脚本并完成。我想出了我需要做什么,就像我说它在命令行上工作。但是当它通过PHP调用时,视频会进行编码,但文件永远不会上传。我可以看到Dropbox脚本已经启动并被列为使用一定百分比的CPU的进程,百分比永远不会改变,它似乎卡住/死了。

命令如下所示,使用cmd()

运行

script.py -options &>/logs/phptopython.log &

使用Popen启动shell脚本

有什么建议吗?

感谢

1 个答案:

答案 0 :(得分:0)

听起来这可能是一个权限问题。仔细检查您尝试上传视频的目录的权限。如果您使用的是Linux,则可以修改该目录的权限,如下所示:

chmod 755 /path/to/dir

这为文件所有者提供了读,写和执行权限(7)。该组和其他用户获得读取和执行权限(5)。

Apache可能作为一个不同的用户运行,而不是在bash中自己运行命令。一个快速测试,看看它是否是一个权限问题将是在该目录上授予777。我不会这样离开它 - 它只是一种快速识别权限是否是问题的方法。

如果脚本使用777权限,您可以将目录的所有者更改为Apache运行的用户,或者将Apache用户添加到目录的组中,并授予组写入权限。

修改 我刚注意到你说你使用cmd(),所以我猜你是在Windows上。我的评论可能仍然相关,但chmod命令在Windows上不起作用。