前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Go 语言社区】linux 下Go服务器部署(也同样适合C++等)

【Go 语言社区】linux 下Go服务器部署(也同样适合C++等)

作者头像
李海彬
发布2018-03-19 16:39:48
8610
发布2018-03-19 16:39:48
举报
文章被收录于专栏:Golang语言社区

作为服务器开发人员,GO语言内网测试数据及调试肯定很简单,如果你在Windows下开发 直接编成EXE执行就可以,然后部署外网在打包成linux的执行文件(交叉编译);但是对于在Linux下部署,也是后台我们开发人员必须掌握的技术。很简答,看下就会了: 假如我们打算开启大厅服务器,执行文件的名字:HallServer

以下脚本和文件是部署的组合

-----------------------------------------------------------------------------

mod.txt存执行文件的名字

HallServer

-----------------------------------------------------------------------------

clear_all_shm.sh文件内容:

for id in `ipcs -m|awk '{if($6 == 0){print $2}}'`

do

ipcrm -m $id

done

-----------------------------------------------------------------------------

NameConfig.sh文件内容:

#!/bin/sh

MainSvrName=HallServer

StopSvr()

{

if

ps -ef | grep $1 | grep $2 | grep -v grep

then

PROCESSID=`ps -ef | grep $1 | grep $2 | grep -v grep | awk '{print \$2}'`

echo "Try to tell $1 to Stop. Pid: $PROCESSID"

kill -s SIGUSR2 $PROCESSID

fi

for ((i = 0; i < 10; i++));

do

if

ps -ef | grep $1 | grep $2 | grep -v grep

then

sleep 1

else

break

fi

done

if

ps -ef | grep $1 | grep $2 | grep -v grep

then

echo "Stop $1 Fail. Force To stop? Input You Choice:[Y/N]"

read UserInput

if [ $UserInput = 'Y' ] || [ $UserInput = 'y' ]

then

echo "kill -9 $1"

echo "ps -ef | grep $1 | grep $2 | grep -v grep | awk '{print \$2}'"

PROCESSID=`ps -ef | grep $1 | grep $2 | grep -v grep | awk '{print \$2}'`

kill -9 $PROCESSID

else

echo "Do Nothing"

fi

else

echo "Stop $1 Finish"

fi

}

StopSvrDontAsk()

{

if

ps -ef | grep $1 | grep $2 | grep -v grep

then

PROCESSID=`ps -ef | grep $1 | grep $2 | grep -v grep | awk '{print \$2}'`

echo "Try to tell $1 to Stop. Pid: $PROCESSID"

kill -s SIGUSR2 $PROCESSID

fi

for ((i = 0; i < 30; i++));

do

if

ps -ef | grep $1 | grep $2 | grep -v grep

then

sleep 1

else

break

fi

done

if

ps -ef | grep $1 | grep $2 | grep -v grep

then

PROCESSID=`ps -ef | grep $1 | grep $2 | grep -v grep | awk '{print \$2}'`

kill -9 $PROCESSID

else

echo "Stop $1 Finish"

fi

}

-----------------------------------------------------------------------------

restart_all.sh文件内容:

./stop_all.sh

sleep 5

./start_all.sh

-----------------------------------------------------------------------------

start_all.sh文件内容:

ulimit -c unlimited

# sudo sysctl -w kernel.shmmax=4000000000

OLDPWD=`pwd`

while read d c

do

cd ./bin && ./$d &

cd -

sleep 3

done<mod.txt

-----------------------------------------------------------------------------

status.sh文件内容:

#!/bin/sh

. ./conf/NameConfig.sh

WHO=`whoami`

ps -ef | grep $MainSvrName | grep $WHO | grep -v grep

-------------------------------------------------------------------------------

stop_all.sh文件内容:

ps -ef|grep Hall|grep -v grep|awk '{print $2}'|xargs kill -9

sleep 3

./clear_all_shm.sh

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-01-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang语言社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档