diff --git a/DBServer/start.sh b/DBServer/start.sh new file mode 100644 index 0000000..059d058 --- /dev/null +++ b/DBServer/start.sh @@ -0,0 +1,11 @@ +#!/bin/bash +cd $(cd "$(dirname "$0")" && pwd) +path=`pwd` +./stop.sh + +echo "======================【启动】========================" +datetime=`date "+%Y-%m-%d.%H:%M:%S"` + +echo "["$datetime"] 正在启动 DB 服务器 [dbserver_r]..." + +$path/dbserver_r $path/DBServerLinux.txt \ No newline at end of file diff --git a/DBServer/stop.sh b/DBServer/stop.sh new file mode 100644 index 0000000..f8ebf6e --- /dev/null +++ b/DBServer/stop.sh @@ -0,0 +1,32 @@ +#!/bin/bash +path=`pwd` +srv = "dbserver" + +datetime=`date "+%Y-%m-%d.%H:%M:%S"` +curdoc=$(pwd|awk -F \/ '{print $NF}') + + +pid=`ps aux |grep $path|grep $srv|grep -v grep|grep "\<$curdoc\>"|grep -v "/bin/bash"|awk '{print $2}'` +if [[ -n $pid ]]; then + echo "开始结束服务器: $srv (pid=$pid)" + kill -15 $pid + NUM=10 + while true; do + datetime=`date "+%Y-%m-%d.%H:%M:%S"` + proc=`ps aux |grep $path|grep $srv|grep -v grep|grep "\<$curdoc\>"|grep -v "/bin/bash"|wc -l` + if [ $proc == 0 ]; + then + break + fi + if [ $NUM -lt 0 ]; + then + kill -9 $pid + echo $datetime" 游戏服务 "$path" "$srv" 强制结束" + break + fi + echo $datetime" 游戏服务 "$path" "$srv" 结束中..." + sleep 1 + let NUM-- + done + echo "已结束服务器: $srv" +fi \ No newline at end of file diff --git a/Gateway/start.sh b/Gateway/start.sh new file mode 100644 index 0000000..3306d72 --- /dev/null +++ b/Gateway/start.sh @@ -0,0 +1,11 @@ +#!/bin/bash +cd $(cd "$(dirname "$0")" && pwd) +path=`pwd` +./stop.sh + +echo "======================【启动】========================" +datetime=`date "+%Y-%m-%d.%H:%M:%S"` + +echo "["$datetime"] 正在启动 Logic 服务器 [gateway_r]..." + +$path/gateway_r $path/GateWay.txt \ No newline at end of file diff --git a/Gateway/stop.sh b/Gateway/stop.sh new file mode 100644 index 0000000..88d9455 --- /dev/null +++ b/Gateway/stop.sh @@ -0,0 +1,32 @@ +#!/bin/bash +path=`pwd` +srv = "gateway" + +datetime=`date "+%Y-%m-%d.%H:%M:%S"` +curdoc=$(pwd|awk -F \/ '{print $NF}') + + +pid=`ps aux |grep $path|grep $srv|grep -v grep|grep "\<$curdoc\>"|grep -v "/bin/bash"|awk '{print $2}'` +if [[ -n $pid ]]; then + echo "开始结束服务器: $srv (pid=$pid)" + kill -15 $pid + NUM=10 + while true; do + datetime=`date "+%Y-%m-%d.%H:%M:%S"` + proc=`ps aux |grep $path|grep $srv|grep -v grep|grep "\<$curdoc\>"|grep -v "/bin/bash"|wc -l` + if [ $proc == 0 ]; + then + break + fi + if [ $NUM -lt 0 ]; + then + kill -9 $pid + echo $datetime" 游戏服务 "$path" "$srv" 强制结束" + break + fi + echo $datetime" 游戏服务 "$path" "$srv" 结束中..." + sleep 1 + let NUM-- + done + echo "已结束服务器: $srv" +fi \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index a87ba61..8e89318 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,24 +1,24 @@ version: '3.8' services: - server: + db: image: chuanqi-os:latest - container_name: chuanqi-server-dev - cpus: '2' + container_name: chuanqi-server-db stdin_open: true volumes: - - .:/data/server/s1 + - ./DBServer:/data/server/s1/DBServer - ./wch:/etc/yum/wch - entrypoint: "/data/server/s1/run.sh" + entrypoint: "/data/server/s1/DBServer/start.sh" network_mode: "host" restart: unless-stopped environment: TZ: Asia/Shanghai + logic: image: chuanqi-os:latest container_name: chuanqi-server-logic - cpus: '4' - cpuset: '13,14,15,16' + depends_on: + - db # 等待db服务启动 stdin_open: true volumes: - ./LogicServer:/data/server/s1/LogicServer @@ -28,3 +28,18 @@ services: restart: unless-stopped environment: TZ: Asia/Shanghai + + gate: + image: chuanqi-os:latest + container_name: chuanqi-server-gate + depends_on: + - logic # 等待logic服务启动 + stdin_open: true + volumes: + - ./GateServer:/data/server/s1/GateServer + - ./wch:/etc/yum/wch + entrypoint: "/data/server/s1/GateServer/start.sh" + network_mode: "host" + restart: unless-stopped + environment: + TZ: Asia/Shanghai \ No newline at end of file