ruby-on-rails – Rake资产:在生产中有一个控制台会话打开时,预编译会被杀死

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – Rake资产:在生产中有一个控制台会话打开时,预编译会被杀死前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的生产服务器上,托管在数字海洋上,如果有帮助,Ubuntu 12.04,我有RoR 4和耙10.1.1.

当我部署时,我运行rake资产:预编译,我注意到一个奇怪的问题,如果我有一个rails控制台会话打开,当我这样做,我得到以下输出

~# rake assets:precompile
~# Killed

这主要是烦人的,但是我想要解决的原因是招聘新的开发人员时会出现部署/控制台冲突的噩梦.

谢谢,

布赖恩

解决方法

您的预编译过程可能因为内存不足而被杀死.您可以通过在另一个ssh会话中运行顶部来确认.要解决此问题,请创建一个交换文件,当RAM已满时将使用该交换文件.

在Ubuntu上创建SWAP空间
如果您计划在数字海洋上使用Rails 512MB RAM液滴,则可能需要一些交换空间.具体来说,在编译资产时,您的内存将用尽,导致进程被安静地杀死并阻止成功的部署.

看看你是否有交换文件

sudo swapon -s

没有显示交换文件?检查你有多少磁盘空间:

df

创建交换文件

步骤1:分配文件进行交换

sudo fallocate -l 2048m /mnt/swap_file.swap

步骤2:更改权限

sudo chmod 600 /mnt/swap_file.swap

步骤3:格式化交换设备的文件

sudo mkswap /mnt/swap_file.swap

步骤4:启用交换

sudo swapon /mnt/swap_file.swap

步骤5:重新启动时,确保交换已安装.首先,打开fstab

sudo nano /etc/fstab

最后,在fstab中添加条目(只有当它不被自动添加时)

# /etc/fstab
/mnt/swap_file.swap none swap sw 0 0

保存并退出.你完成了交换.现在你的耙子资产:预编译应该完成而不会被杀死.

原文链接:https://www.f2er.com/ruby/273263.html

猜你在找的Ruby相关文章