这绝对是一个奇怪的。
我有一组PHP脚本,用imagick处理图像(调整大小,注释)。当直接通过cli运行时,它们运行良好。根据htop的内存使用率达到115MB左右。
但是,当通过cron运行时,它们会在1-20秒内一直失败并出现如下段错误:
Dec 15 17:01:40 recurring kernel: php5[4804]: segfault at b68e6775 ip b68e6775 sp b3ad32e8 error 14
Dec 15 17:01:40 recurring kernel: php5[4803]: segfault at b68e6778 ip b68e6778 sp b42d42e8 error 14
Dec 15 17:01:40 recurring kernel: php5[4802]: segfault at b68e6772 ip b68e6772 sp b648c2e8 error 14
我已经尝试通过cli运行脚本并观看同一个脚本生成,然后由cron进行segfaulted。内存使用量相同。 php日志中绝对没有任何内容。安装xdebug没有导致任何错误。 free -m一直报告超过50%的ram free。
这些是Ubuntu Lucid上的linode实例。我已经尝试克隆到新的linode,以及从头开始构建。同样的问题。
php -v:
PHP 5.3.5-1ubuntu7.2ppa1~lucid with Suhosin-Patch (cli) (built: May 7 2011 03:12:27)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
php -m:
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
ereg
exif
fileinfo
filter
ftp
gettext
hash
iconv
imagick
json
libxml
mbstring
mhash
mysql
openssl
pcntl
pcre
Phar
posix
readline
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xml
xmlreader
xmlwriter
zip
zlib
[Zend Modules]
代码库在这里代表性很大且很复杂,并且它不仅限于一个脚本。我希望有更多关于可能导致这种独特情况的更一般的建议,我可以在命令行上运行脚本,但是当通过cron运行时它们会失败。
谢谢!