当前位置: 首页 > 知识库问答 >
问题:

PHP shell_exec()有时不起作用

袁鸿达
2023-03-14

我有一个PHP脚本,用于从供应商合作伙伴导入数据。它需要做的一件事是通过shell_exec()调用另一个脚本,然后处理一个图像文件并将其上传到AmazonS3存储桶。我现在正在终端上观看这个脚本的输出,过了一会儿,我看到一系列消息,内容如下:

警告:shell_exec():无法执行'php-f/path/to/second/script'。php/path/to/image/to/process。jpg'in/path/to/this/script。php第453行

奇怪的是,同一个脚本在这个脚本中被多次调用,开始工作,然后停止。它也是从其他脚本调用的,在这些脚本中运行良好。当我复制它无法运行的命令并将其粘贴到我自己时,它总是有效的。显然,PHP有时能够运行它。

当它运行时,我在每一行上放了一个内存使用回声,当它正常工作时,我看到它高达148MB,当它运行时,它低至77MB。(这是在主脚本中,而不是不能运行的辅助脚本)。随着错误的出现,内存使用量似乎越来越低。我第一次注意到它大约是88MB,然后下降到85MB,81MB,然后到77MB。

我不清楚是什么原因导致脚本有时有效,有时无效。上次我检查时,PHP不可能决定它是否会被打扰,而且它也不会磨损,所以为什么它可以正常工作很长时间(我说的是数百次,如果不是数千次成功下载的话),然后突然停止工作。这并不是说它试图处理无法下载的图像,因为脚本中有一个条件阻止了这一点,我经常看到图像负载不存在,即使它无法处理其余的图像。最后,我不得不写另一个脚本,该脚本将返回并处理所有丢失的图像。

如果您有任何想法,我们将不胜感激!

顺便说一下,这是在一个带有AmazonLinuxOS的大型AWS EC2实例上运行的。我们正在运行PHP5.3

共有1个答案

充运浩
2023-03-14

我在处理同样的问题,我发现 /paht/to/php /usr/bin/php5

 类似资料:
  • 我必须使用Fred的ImageMagick脚本创建图像的过渡序列,特别是fx过渡。 在我的PHP代码中,我将所有的图片调整为标准大小,然后我将所有这些图片重命名为pic000001.jpg,pic000002.jpg,pic000003.jpg等(我用$Count计数),那么我做: (这肯定是脚本生成的消息),然后是如下消息: 因为图片没有生成(它揭示了对帧编号的高维是正确的,所以不要专注于此)。

  • 我尝试使用如下所示的指针修改BGRA mat: 但这给出不同的输出每一次,有时工作,有时给一个白色空白的图像。我怀疑如果这是由于不连续的数据,谁能帮助? 一个额外的问题,通常我们在访问行之前首先访问二维数组的列,因为它通常更快。但是,我必须使用访问像素。那么,我应该先循环遍历行然后遍历列吗?

  • 问题内容: 我有以下通常正常工作的代码: 对于我的许多实体类来说,这都是可行的。但是对于其中的两个它什么也不做,它不会引发任何异常,也不会删除该对象。来自hibernate的日志显示,hibernate执行了许多选择查询,但它甚至没有尝试执行删除。 我已经在这里和这里尝试了在其他类似问题中发现的建议,但是没有用(嗯,后者建议我不能使用,但是我只是在和之间加上了语句)。 我似乎找不到这两个类比其他类

  • 我有以下通常运行良好的代码: 对于我的许多实体类,这很有效。但是,对于其中两个,它什么都不做,它不会引发任何异常,也不会删除对象。来自Hibernate的日志显示Hibernate执行了许多选择查询,但它甚至不会尝试执行删除。 我已经尝试了在这里和这里的其他类似问题中找到的建议,但无济于事(好吧,后者建议我不能使用,但我只是将语句括在和之间)。 我似乎找不到这两个班比其他班多(或少)什么。他们使用

  • 问题内容: 我是Python和Pandas库的初学者,我对DataFrame的一些基本功能感到困惑。我有一个熊猫DataFrame,如下所示: 但是,在执行一些功能之后: 我再也无法使用df.head()函数了: 我不明白为什么会这样。我在这里做错什么了吗?任何指针都欢迎!谢谢。 问题答案: 返回df的前n行。现在默认情况下要显示一个熊猫检查终端的宽度,如果该宽度太小而无法显示摘要视图。在第二种情