下面是一个Linux下支持的一个启动服务端的Shell代码。可以实现服务端当机后自动重新启动。

同时可以支持LINUX下用GDB对mangos进行当机调试,输出结果到crashes/Server.log  ??

你需要根据你的魔兽私服单机版在Linux中的路径调整下面的文件

#! /bin/bash

THIS_FULLPATH=$(cd `dirname "${BASH_SOURCE[0]}"` && pwd -P)/`basename "${BASH_SOURCE[0]}"`

THIS_FOLDERPATH=$(cd `dirname "${BASH_SOURCE[0]}"` && pwd -P)

APATH=/home/mangos/mangos-server/bin

WPATH=/home/mangos/mangos-server/bin

ASRV_BIN=realmd         #This usually doesnt change. TrinityCore: authserver  MaNGOS: realmd  ArcEmu: whocares?

WSRV_BIN_ORG=mangosd    #This usually doesnt change. TrinityCore: worldserver MaNGOS: mangosd ArcEmu: whocares?

WSRV_BIN=mangosd

WSRV_SCR=mangosd

echo "run" > gdbcommands

echo "shell echo -e \" CRASHLOG BEGIN \"" >> gdbcommands

echo "info program" >> gdbcommands

echo "shell echo -e \" BACKTRACE \"" >> gdbcommands

echo "bt" >> gdbcommands

echo "shell echo -e \" BACKTRACE FULL \"" >> gdbcommands

echo "bt full" >> gdbcommands

echo "shell echo -e \" THREADS \"" >> gdbcommands

echo "info threads" >> gdbcommands

echo "shell echo -e \" THREADS BACKTRACE \"" >> gdbcommands

echo "thread apply all bt full" >> gdbcommands

DEBUG=false

#WORLD FUNCTIONS

startWorld()

{

if [ "$(screen -ls | grep $WSRV_SCR)" ]

then

echo $WSRV_BIN is already running

else

cd $WPATH

screen -AmdS $WSRV_SCR $THIS_FULLPATH $WSRV_BIN $DEBUG

echo $WSRV_BIN is alive

fi

}

restartWorld()

{

screen -S $WSRV_SCR -X stuff "saveall$(printf \ )"

echo saved all characters, and server restart initialized

screen -S $WSRV_SCR -X stuff "server restart 5$(printf \ )"

}

stopWorld()

{

screen -S $WSRV_SCR -X stuff "saveall

"

echo saveall sent, waiting 5 seconds to kill $WSRV_BIN

sleep 5

screen -S $WSRV_SCR -X kill &>/dev/null

echo $WSRV_BIN is dead

}

monitorWorld()

{

echo press ctrl+a+d to detach from the server without shutting it down

sleep 5

screen -r $WSRV_SCR

}

#AUTH FUNCTIONS

startAuth()

{

if [ "$(screen -ls | grep $ASRV_BIN)" ]

then

echo $ASRV_BIN is already running

else

cd $APATH

screen -AmdS $ASRV_BIN $THIS_FULLPATH $ASRV_BIN

echo $ASRV_BIN is alive

fi

}

stopAuth()

{

screen -S $ASRV_BIN -X kill &>/dev/null

echo $ASRV_BIN is dead

}

restartAuth()

{

stopAuth

startAuth

echo $ASRV_BIN restarted

}

monitorAuth()

{

echo press ctrl+a+d to detach from the server without shutting it down

sleep 5

screen -r $ASRV_BIN

}

#FUNCTION SELECTION

case "$1" in

$WSRV_BIN )

if [ "$2" == "true" ]

then

while x=1;

do

gdb $WPATH/$WSRV_BIN --batch -x gdbcommands | tee current

NOW=$(date +"%s-%d-%m-%Y")

mkdir -p $THIS_FOLDERPATH/crashes

mv current $THIS_FOLDERPATH/crashes/$NOW.log &>/dev/null

killall -9 $WSRV_BIN

echo $NOW $WSRV_BIN stopped, restarting! | tee -a $THIS_FULLPATH.log

echo crashlog available at: $THIS_FOLDERPATH/crashes/$NOW.log

sleep 1

done

else

while x=1;

do

./$WSRV_BIN

NOW=$(date +"%s-%d-%m-%Y")

echo $NOW $WSRV_BIN stopped, restarting! | tee -a $THIS_FULLPATH.log

sleep 1

done

fi

;;

$ASRV_BIN )

while x=1;

do

./$ASRV_BIN

NOW=$(date +"%s-%d-%m-%Y")

echo $NOW $ASRV_BIN stopped, restarting! | tee -a $THIS_FULLPATH.log

sleep 1

done

;;

"wstart" )

startWorld

;;

"wdstart" )

DEBUG=true

startWorld

;;

"wrestart" )

restartWorld

;;

"wstop" )

stopWorld

;;

"wmonitor" )

monitorWorld

;;

"astart" )

startAuth

;;

"arestart" )

restartAuth

;;

"astop" )

stopAuth

;;

"amonitor" )

monitorAuth

;;

"start" )

startWorld

startAuth

;;

"stop" )

stopWorld

stopAuth

;;

"restart" )

restartWorld

restartAuth

;;

* )

echo Your argument is invalid

echo "usage: start | stop | restart | wstart | wdstart | wrestart | wstop | wmonitor | astart | arestart | astop | amonitor"

exit 1

;;

esac

下面是完整代码下载

游客,如果您要查看本帖隐藏内容请回复

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

linux下编译mangos,Linux下MANGOS服务端自动重启Shell启动脚本相关推荐

  1. nginx 怎么重新编译安装mysql,centos 下 编译安装 nginx + mysql + php 服务

    centos 下编译安装nginx + mysql + php 服务 1.安装nginx 1.1.安装依赖包 yum install wget make gcc gcc-c++ pcre-devel ...

  2. 非零基础自学Golang 第18章 HTTP编程(下) 18.2 HTTP服务端 18.2.2 启动HTTP服务器 18.2.3 启动HTTPS服务器

    非零基础自学Golang 文章目录 非零基础自学Golang 第18章 HTTP编程(下) 18.2 HTTP服务端 18.2.2 启动HTTP服务器 18.2.3 启动HTTPS服务器 第18章 H ...

  3. [Eureka集群] 在linux上部署SpringCloudEureka的集群服务端(Dalston.SR5版本)

    搭配使用 logback日志配置: https://blog.csdn.net/a755199443/article/details/92208902 Eureka单机服务端配置: https://b ...

  4. 如何用Linux系统搭建天堂2初章服务端

    如何用Linux系统搭建天堂2初章服务端 准备 1,一台云服务器(这里用的是免费服务器-三丰云https://www.sanfengyun.com/) 2,天堂2初章服务端(这里用的是血玫瑰天堂2论坛 ...

  5. Linux VPS服务器根据CPU负载及内存占用自动重启的bash shell脚本

    Linux VPS服务器根据CPU负载及内存占用自动重启的bash shell脚本 288月2011 0 主要用于监控 linux 服务器负载及内存占用,如 MySQl.php-fpm,当负载或内存占 ...

  6. Windows编译安装AzerothCore魔兽世界开源服务端Lua脚本引擎Eluna和防作弊anticheat模块教程

    Windows编译安装AzerothCore魔兽世界开源服务端Lua脚本引擎Eluna和防作弊anticheat模块教程 大家好,我是艾西今天和大家聊聊魔兽世界游戏内的脚步以及防作弊模块 Eluna是 ...

  7. 微信支付服务端自动对账

    微信支付服务端自动对账 支付及对账流程链接 自动对账说明 微信支付后每天的商户系统的自动对账还是比较繁琐的,所谓自动对账实际上就是将商户某天交易成功的订单信息与微信某天的账单进行逐一匹配的过程.其涉及 ...

  8. 后端代码之服务端 - 项目工程化创建目录启动服务 -讲解篇

    文章目录 前言 一. 目录创建 与 应用启动 A. 步骤如下: B. 具体cmd命令执行流,截图如下:(`部分无效,可忽略`) 二. 查看Express的欢迎页 1. 查看欢迎页的 浏览器url地址: ...

  9. Mac 系统部署Frp内网穿透服务 实现frpc shell启动脚本启动、停止

    Mac 系统部署Frp内网穿透服务 实现frpc shell启动脚本启动.停止 前言 最近疫情导致居家办公,而工作中需要用到公网地址便于调试,于是就在本机(Mac系统)配置了Frpc内网穿透. 本来想 ...

最新文章

  1. Spring中复杂类型注入
  2. 2014年百度之星资格赛第一题Energy Conversion
  3. 1、数据库为什么需要备份?
  4. C#泛型-泛型集合DictionaryK,V
  5. IP地址的简单说明---Linux学习笔记
  6. 安装Microsoft Windows SDK 7.1时出现的错误(附解决办法)
  7. 使用Hadoop自带的例子wordcount实现词频统计
  8. 【Python】处理UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xa2 in position…
  9. 二分法求函数的零点(信息学奥赛一本通-T1241)
  10. 一种基于局部线性嵌入的半监督方法——半监督局部线性嵌入(SSLLE),MATLAB程序代码
  11. 钟薛高雪糕最贵一支66元 创始人:成本40 你爱要不要
  12. C# Winfrom DataGridView DataSource绑定数据源后--解决排序问题
  13. Delphi ArcEngine 创建比例尺
  14. -XX:HandlePromotionFailure: 是否设置空间分配担保【了解】
  15. 小红帽 oracle,Linux+5+红帽子企业版安装Oracle9
  16. android 手机 多分辨率适配
  17. 线性丢番图方程的C++实现
  18. unity3d学习笔记——老版动画系统的使用
  19. 证券股票交易接口需要满足什么要求才能在实盘中用?
  20. 英特尔OpenVINO使用入门(C++集成方式)

热门文章

  1. 九章量子计算机常温,量子计算机九章这么火,本文让你明白什么是量子
  2. hisi芯片gdp调试
  3. 不畏网页遮望眼,只为我有bf4
  4. 取消管理员取得所有权_利用管理员取得所有权删除顽固文件
  5. 首页创业 不想一直做普工,去学这5个技术,好找工作,赚钱也容易点
  6. 汪峰,上不了头条是有原因——解密百度搜索突发时效性事件处理
  7. 树莓派的操作系统介绍
  8. 深度linux运行wine,Linux系统中的Wine和deepin wine是什么有什么区别
  9. mysql kill 指令,SHOW PROCESSLIST指令与KILL指令
  10. 【转】不同身材怎么穿牛仔裤