Python 进程启动时未启动其他进程';不是我开始的吗?

Python 进程启动时未启动其他进程';不是我开始的吗?,python,unix,ubuntu,selenium-webdriver,user-permissions,Python,Unix,Ubuntu,Selenium Webdriver,User Permissions,所以我有这个网页。在这个网页上,用户设置了一些东西,按下一个按钮,在服务器上用Javascript向php脚本发出XMLHTTPRequest,传递一个JSON字符串,该字符串在解析JSON并对其进行处理后尝试执行python脚本: 执行_web_crawler.php: $result = shell_exec("python /home/directories_go_here/web_crawl.py '".$json."' >> /home/some_other_directo

所以我有这个网页。在这个网页上,用户设置了一些东西,按下一个按钮,在服务器上用Javascript向php脚本发出XMLHTTPRequest,传递一个JSON字符串,该字符串在解析JSON并对其进行处理后尝试执行python脚本:

执行_web_crawler.php:

$result = shell_exec("python /home/directories_go_here/web_crawl.py '".$json."' >> /home/some_other_directories_here/screenshots/test.txt");
fwrite($file, $result);
在这个python脚本上,它将实现一些urllib魔术,检查一些页面,然后偶尔尝试使用SeleniumWebDriver打开一个Firefox窗口来验证一些东西

web_crawl.py:

def confirm_ad_space(url):
    print "FINDING AD PLACEMENT ON ", url
    file_write.write("Finding placement...\n")
    browser = webdriver.Firefox()
    print "BROWSER ONLINE"
    file_write.write("Browser Initialized.\n")
文件_写入到一个日志文件中,该文件中有很多关于脚本执行的文字,PHP所做的命令行工作希望将这些打印语句输出到TEST.txt

但我的日志输出在“查找位置”时停止

和上次执行时Test.txt的输出在代码前面的打印语句中间停止,就像它在单词中途中途停止一样。p>


现在,当我从CLI手动运行这个python脚本时,一切正常。如果我从web界面运行它,它将打开浏览器并停止。我想这可能与权限有关。有什么方法可以确保PHP所在的用户可以访问Firefox或其他东西吗?

如果没有看到代码,就无法确定,但很可能是权限问题。如果您是脚本的所有者,您可以尝试在脚本上设置setuid位
chmod u+s
,看看是否有效。您是否从Python脚本中收到任何错误消息?试试echo shell_exec('python/script.py 2>&1')来看看发生了什么。我不是,我认为只是CRON没有能力启动firefox并用它做一些事情,但我的用户是。我不知道。PHP也被要求使用AJAX。我给它添加了一个文件写,但是它在Python打印语句的中间被切断了。比如,它写了半个字。:\。我的日志文件最后一次显示它在启动firefox之前所说的内容。如何使用
cron
?你在最初的问题中没有提到这一点。如果您在登录shell的上下文之外运行像firefox这样的GUI应用程序,则可能需要手动将
DISPLAY
环境变量设置为可访问的X11主机。