繁体   English   中英

我长期奔跑的laravel 4命令一直被杀死

My long running laravel 4 command keeps being killed

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个实现laravel命令的laravel 4 web项目。

当在开发宅基地vm中运行时,它运行完成(总时间约为40秒)。

但是,在生产服务器上运行它时,它会在命令行上以“已终止”输出退出。

起初我以为它是cli php.ini中的max_execution_time,所以我把它设置为0(无限时间)。

我怎样才能找出杀死我命令的内容?

我使用标准的artisan invokation在ssh终端上运行它:

php artisan commandarea:commandname

laravel 4在某处有命令时限吗?

vps是一个带有mysql,nginx和php-fpm的Ubuntu 4.10机器

3 个回复

所以,首先,谢谢大家指出我关于PHP和laravel内存使用情况跟踪的正确方向。

我已经回答了我自己的问题,希望将来有利于laravel开发者,因为我的解决方案很难找到。

输入'dmesg'后显示系统消息。 我发现php脚本被Linux杀死了。

因此,我在脚本的每个关键区域之前和之后将内存日志记录调用添加到我的脚本中:

Log::Info('Memory now at: ' . memory_get_peak_usage());

然后我在观察日志输出的同时运行脚本以及'top'命令的输出。

我发现即使我的方法结束并且变量超出范围,内存也没有被释放。

我试过的东西, DIDNT在我的情况下有所不同:

  1. 在我完成它们之后对变量进行unset($ varname) - 希望让GC开始
  2. 在脚本开头添加gc_enable(),然后在未设置大量变量后添加gc_collect_cycle()调用。
  3. 禁用mysql事务 - 想想可能是内存密集型 - 它不是。

现在,奇怪的是,以上都没有任何区别。 我的剧本在被杀的时候仍然使用150mb或ram!

实际工作的解决方案:

现在这绝对是一个特定的解决方案。 但我的脚本目的主要是解析一个大的xml feed,然后使用Elequent ORM将数千行插入到mysql中。

事实证明,Laravel创建了日志信息和对象,以帮助您查看查询性能。

通过以下“魔术”调用将其关闭,我将脚本从150mb降低到大约20mb!

这就是'魔术'; 呼叫:

DB::connection()->disableQueryLog();

当我发现这个电话时,我可以告诉你,我正在抓稻草;-(

一个进程可能会被杀死有几个原因:

记不清

有两种方法可以触发此错误:超过在php.ini中分配给PHP脚本的内存量,或超过可用的系统内存。 检查PHP错误日志和php.ini文件以排除第一种可能性,并使用dmesg输出检查第二种可能性。

超出执行超时限制

在您的帖子中,您指示您通过max_execution_time设置禁用了超时,但我已将其包含在此处以保证完整性。 确保php.ini中的设置正确并且(对于那些使用Web服务器而不是CLI脚本的设置)重新启动Web服务器以确保新配置处于活动状态。

堆栈中的错误

如果您的脚本没有错误且没有遇到上述任何一种错误,请确保您的系统按预期运行。 使用Web服务器时,请重新启动Web服务器软件。 检查错误日志以查找意外输出,并停止或升级相关的守护程序并且需要。

在Laravel / Spark项目中遇到过这个问题。 只是想分享其他人是否有这个问题。

如果在更积极的方法之前运行Vagrant或Ubuntu,请尝试刷新/重新启动您的开发服务器。

我不小心在Vagrant服务器上运行了依赖包的安装。 我还在安装错误期间反复删除并替换了镜像文件夹。 我的错误发生在Laravel / Spark 4.~上。 我能够在其他项目上运行迁移; 在几乎所有命令的特定项目中,我很快就被“杀死”了300毫秒的时间框架。 阅读其他用户,我害怕试图找到问题或腐败。 在我的情况下,快速的Vagrant重新加载就可以了。 遇难问题已经解决。

1 Android活动一直被杀死

我从其他程序员那里继承来的一个应用程序存在一个主要问题。 它具有许多复杂的页面,将列表视图与来自本地数据库,谷歌地图,图像等的数据结合在一起。在运行Android 6的设备上,它或多或少都可以,但是客户正在运行Android 5.1和Windows XP的Samsung Tab S2上对其进行 ...

3 应用程式被杀死时,AlarmManager并非一直都在工作

我在我的应用程序中使用AlarmManager。 当应用程序位于前台时,它始终有效,但是当应用程序被杀死时,它在大多数情况下不起作用(但有时可以工作)。 以下是设置警报的代码: 我的AlarmService.java类: 我的AlarmActivity,在警报到达时间时显示: 我的清单 ...

4 无法在后台运行 OneSignal 通知服务。 服务一直被杀死

我开发了一个带有 One Signal Notification 集成的应用程序。 但我面临的问题是后台没有收到通知。 只有当我打开应用程序通知弹出。 这是我的清单和通知扩展程序文件。 我坚持不变,但在使用 Firebase 时效果很好。 在后台收到通知。 如果我对代码做错了什么,请发布您的答案。 ...

5 OS X应用程序在OS迁移后一直被杀死

我的OS X应用程序的一位用户已将其Mac迁移到新的MBP,并且我的应用程序被沙盒化,带有开发人员ID证书的签名和即席分发的,一直被杀死。 在控制台上,我发现了以下日志。 xpcd [352]:在/Users/myname/Library/Containers/com.company ...

6 如何防止长期运行的备份作业被杀死

如何防止长时间运行的占用大量内存的基于tar的备份脚本被杀死? 我有一个Cron作业,每天运行以下命令: 它写入外部USB驱动器。 通常生成的文件为100GB,但是在我升级到Ubuntu 16之后,现在该日志文件显示该进程在大约25%的时间中被杀死,大概是因为它消耗了大量内存和/ ...

8 laravel队列一直超时

我已经在本地使用数据库队列在5.5中成功开发了laravel作业,但是将应用程序移至测试服务器却引发了一个持续的问题。 每个作业都会立即失败,并放置在“失败的作业”列表中。 返回的唯一错误是: 尝试了太多次或运行了太长时间。 该作业可能先前已超时 这是通过函数在c ...

10 纱线命令输出被杀死:9

当我尝试yarn install , yarn version , yarn upgrade ,除了killed: 9之外没有其他消息killed: 9 有没有关于如何解决这个问题的任何想法? 运行 Catalina 10.15.7,节点 v15.13.0 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM