#! /bin/bash
set -e
# check net
ping -q -w 1 -c 1 www.baidu.com > /dev/null || (echo "Plese check your network." && exit 1)
#nslookup www.baidu.com >/dev/null || (echo "Plese check your dns!" && exit 1)
# Determine OS platform
UNAME=$(uname | tr "[:upper:]" "[:lower:]")
# If Linux, try to determine specific distribution
if [ "$UNAME" = "linux" ]; then
# If available, use LSB to identify distribution
if [ -f /etc/lsb-release -o -d /etc/lsb-release.d ]; then
distro=$(lsb_release -i | cut -d: -f2 | sed s/'^\t'//)
# Otherwise, use release info file
else
distro=$(ls -d /etc/[A-Za-z]*[_-][rv]e[lr]* | grep -v "lsb" | cut -d'/' -f3 | cut -d'-' -f1 | cut -d'_' -f1)
fi
fi
# For everything else (or if above failed), just use generic identifier
[ "$distro" = "" ] && distro=$UNAME
unset UNAME
# set user id
if [ $1 ];then
uid=$1
else
uid="2"
fi
# set device name
if [ $2 ];then
hname=$2
else
hname=`ip -4 route get 114.114.114.114 | awk {'print $7'} | tr -d '\n'`
fi
minstall(){
# set hugepage and memlock
grep -q -F '* soft memlock 262144' /etc/security/limits.conf || echo '* soft memlock 262144' >> /etc/security/limits.conf
grep -q -F '* hard memlock 262144' /etc/security/limits.conf || echo '* hard memlock 262144' >> /etc/security/limits.conf
grep -q -F 'vm.nr_hugepages = 256' /etc/sysctl.conf || echo 'vm.nr_hugepages = 256' >> /etc/sysctl.conf
set +e
sysctl -w vm.nr_hugepages=256
set -e
#apt-get -y install libhwloc4
wget http://www.yiluzhuanqian.com/soft/linux/yilu_centos6.tgz -O /opt/yilu.tgz
tar zxf /opt/yilu.tgz -C /opt/
/opt/yilu/mservice -user_id $uid -reg_device -dev_name $hname
# uninstall old service
set +e
/opt/yilu/mservice -service uninstall
# install new service
/opt/yilu/mservice -service install
# give priority to make money
sed -i 's/"cpu_priority": 1/"cpu_priority": 34/g' /opt/yilu/work/workers.json
}
if [[ "${distro,,}" = *"ubuntu"* ]] || [[ "${distro,,}" = *"debian"* ]];then
set +e
apt-get -y update
apt-get -y install wget cron sudo
set -e
minstall
# start
service YiluzhuanqianSer restart
# start with system boot
sudo crontab -l -u root 2>/dev/null | grep -q -F 'service YiluzhuanqianSer start' || (sudo crontab -l -u root 2>/dev/null;echo "* * * * * pidof mservice || service YiluzhuanqianSer start") | sudo crontab -u root -
elif [[ "${distro,,}" = *"centos"* ]] || [[ "${distro,,}" = *"redhat"* ]];then
set +e
yum -y update
yum -y install wget crontab sudo
set -e
osversion=`grep -oE '[0-9]+\.[0-9]+' /etc/redhat-release`
if [[ "$osversion" = "7"* ]];then
minstall
# start
service YiluzhuanqianSer restart
# start with system boot
sudo crontab -l -u root 2>/dev/null | grep -q -F 'service YiluzhuanqianSer start' || (sudo crontab -l -u root 2>/dev/null;echo "* * * * * pidof mservice || service YiluzhuanqianSer start") | sudo crontab -u root -
elif [[ "$osversion" = "6"* ]];then
minstall
# start
sudo pidof mservice | xargs kill -9 2>/dev/null
nohup /opt/yilu/mservice > /dev/null 2>&1 &
# start with system boot
sudo crontab -l -u root 2>/dev/null | grep -q -F 'service YiluzhuanqianSer start' || (sudo crontab -l -u root 2>/dev/null;echo "* * * * * pidof mservice || nohup /opt/yilu/mservice > /dev/null 2>&1 &") | sudo crontab -u root -
fi
else
echo $distro
echo "This system is not supported!" && exit 1
fi
sleep 10
tail /opt/yilu/work/xig/debug.log -n 100
Comments