一般就用下面两个参数
./server.sh init
./server.sh shutdown
shell脚本我不是很熟,看看各位有没有改进的地方
#!/bin/sh
##
## usage server.sh {init|start|stop|shutdown}
## First run,use init,create NODE
##
## usage server.sh {init|start|stop|shutdown}
## First run,use init,create NODE
##
ERL=/usr/local/erlang/bin/erl
PA=/game/game_chat_server
PA=/game/game_chat_server
export
HEART_COMMAND="
$PA/server.sh start"
case $1
in
init)
echo "Init Starting Server..."
$ERL -boot game_server-1 -config sasl -sname chatserver01 \
-detached
;;
start)
echo "Starting Server..."
$ERL -noshell -sname manage \
-eval 'server_manage:start("chatserver01@NBCTC-5-160","game_chat_server")' \
-s init stop
;;
stop)
echo "Stopping Server..."
$ERL -noshell -sname manage \
-eval 'server_manage:stop("chatserver01@NBCTC-5-160","game_chat_server")' \
-s init stop
;;
shutdown)
echo "Shutdown Server..."
$ERL -noshell -sname manage \
-eval 'server_manage:shutdown("chatserver01@NBCTC-5-160","game_chat_server")' \
-s init stop
;;
echo "Init Starting Server..."
$ERL -boot game_server-1 -config sasl -sname chatserver01 \
-detached
;;
start)
echo "Starting Server..."
$ERL -noshell -sname manage \
-eval 'server_manage:start("chatserver01@NBCTC-5-160","game_chat_server")' \
-s init stop
;;
stop)
echo "Stopping Server..."
$ERL -noshell -sname manage \
-eval 'server_manage:stop("chatserver01@NBCTC-5-160","game_chat_server")' \
-s init stop
;;
shutdown)
echo "Shutdown Server..."
$ERL -noshell -sname manage \
-eval 'server_manage:shutdown("chatserver01@NBCTC-5-160","game_chat_server")' \
-s init stop
;;
*)
echo "Usage: $0 {init|start|stop|shutdown}"
exit 1
esac
exit 0
echo "Usage: $0 {init|start|stop|shutdown}"
exit 1
esac
exit 0
发现命令行 -s MODDULE Fun arg 这样的方式不好使,就改成 -eval的了
server_manage.erl 代码:
-module(server_manage).
-export([start/2,stop/2,shutdown/2]).
start(Node,Service) ->
rpc:call(list_to_atom(Node),application,start,[list_to_atom(Service)]),
io:format("~p:~p ok~n",[Node,Service]).
stop(Node,Service) ->
rpc:call(list_to_atom(Node),application,stop,[list_to_atom(Service)]),
io:format("~p:~p ok~n",[Node,Service]).
shutdown(Node,Service) ->
rpc:call(list_to_atom(Node),application,stop,[list_to_atom(Service)]),
rpc:call(list_to_atom(Node),init,stop,[]),
io:format("~p:~p ok~n",[Node,Service]). 转自:
http://www.iteye.com/topic/401027
本文介绍了一个用于管理Erlang实现的游戏聊天服务器的Shell脚本,包括启动、停止及关闭等操作,并提供了相应的Erlang模块代码。
408

被折叠的 条评论
为什么被折叠?



