From a752d8eaaf9c18f40516dd617dcf9467b5d24035 Mon Sep 17 00:00:00 2001 From: Matt Palmer Date: Wed, 16 Sep 2015 09:56:14 +1000 Subject: [PATCH] More adjustments to the launcher resource checks * Don't *fail* the install, just warn that the user doesn't have enough to be comfortable. We pause the installation to allow the user to go fix their system if they want to, but only if they're running interactively. * Drop the limits for detecting how much RAM a system has, because a VM with 1GB of RAM doesn't actually *report* that (kernel memory isn't in `free -m`). --- launcher | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/launcher b/launcher index 7475cf6..8708d5e 100755 --- a/launcher +++ b/launcher @@ -155,30 +155,47 @@ prereqs() { # 6. sufficient available resources # 6a. Memory # + resources="ok" avail_mem="$(LANG=C free -m | grep '^Mem:' | awk '{print $2}')" - if [ "$avail_mem" -lt 1000 ]; then - echo "You do not appear to have sufficient memory to run Discourse." + if [ "$avail_mem" -lt 900 ]; then + resources="insufficient" + echo "WARNING: You do not appear to have sufficient memory to run Discourse." + echo + echo "Your system may not work properly, or future upgrades of Discourse may" + echo "not complete successfully." echo echo "See https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md#create-new-cloud-server" - exit 1 - elif [ "$avail_mem" -lt 2000 ]; then + elif [ "$avail_mem" -lt 1800 ]; then + resources="insufficient" total_swap="$(LANG=C free -m | grep ^Swap: | awk '{print $2}')" if [ "$total_swap" -lt 1000 ]; then - echo "You must have at least 1GB of swap when running with less than 2GB of RAM." + echo "WARNING: You must have at least 1GB of swap when running with less" + echo "than 2GB of RAM." + echo + echo "Your system may not work properly, or future upgrades of Discourse may" + echo "not complete successfully." echo echo "See https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md#set-up-swap-if-needed" - exit 1 fi fi # 6b. Disk space free_disk="$(df /var | tail -n 1 | awk '{print $4}')" if [ "$free_disk" -lt 5000 ]; then - echo "You must have at least 5GB of *free* disk space to install Discourse." + resources="insufficient" + echo "WARNING: You must have at least 5GB of *free* disk space to run Discourse." + echo + echo "Insufficient disk space may result in problems running your site, and may" + echo "not even allow Discourse installation to complete successfully." echo echo "Please free up some space, or expand your disk, before continuing." exit 1 fi + + if [ -t 0 ] && [ "$resources" != "ok" ]; then + echo + read -p "Press ENTER to continue, or Ctrl-C to exit and give your system more resources" + fi } if [ "$opt" != "--skip-prereqs" ] ; then -- 2.25.1