一般就用下面两个参数
./server.sh init
./server.sh shutdown
shell脚本我不是很熟,看看各位有没有改进的地方
#!/bin/sh
##
## usage server.sh {init|start|stop|shutdown}
## First run,use init,create NODE
##
ERL=/usr/local/erlang/bin/erl
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 "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]).
分享到:
相关推荐
在Erlang中,"Application"是一个组织代码的机制,它提供了模块之间的依赖管理和启动/停止控制。创建一个Erlang Application,你需要遵循以下步骤: 1. **项目结构**:一个标准的Erlang Application通常包含以下...
在Erlang中,"应用"(application)是组织代码的基本单元,它包含了模块、配置文件以及启动和停止应用程序的逻辑。在这个"Erlang入门:构建application练习5(监督树)"中,我们将探讨如何构建一个包含监督树的应用,...
Erlang/OTP Application完整例子,含代码和二进制,对于学习Erlang/OTP Application很有帮助。 配套文章http://blog.csdn.net/mycwq/article/details/12610677
5. **创建启动脚本**:编写一个启动脚本来管理EMQX的服务,包括启动、停止、重启等操作。通常,这个脚本会利用Erlang的`erl`命令来启动节点,并确保其在后台运行。 6. **系统服务化**:将EMQX的启动脚本注册为系统...
Erlang Runtime System Application, ERTS, contains functionality necessary to run the Erlang system. Note: By default, ERTS is only guaranteed to be compatible with other Erlang/OTP components from the...
它允许开发者构建出能够优雅处理错误和异常的分布式系统,这是Erlang在高可用性和容错性领域中的强大之处。然而,使用`link`也需要注意,不当的链接可能导致进程意外退出,因此在设计系统时应谨慎考虑进程间的链接...
安装RabbitMQ时,同样需要确保已将Erlang的路径添加到PATH环境变量,因为RabbitMQ的启动脚本会依赖Erlang的环境。 一旦RabbitMQ安装完成,可以通过启动RabbitMQ服务器,然后使用管理控制台或者客户端工具来创建...
安装完成后,需要配置RabbitMQ以满足具体应用需求,并确保正确启动和管理服务。 总结来说,Erlang和RabbitMQ是构建高并发、分布式系统的重要工具,RabbitMQ利用Erlang的强大特性提供了稳定、高效的消息传递服务。...
5. **启动/停止脚本**: 用于控制RabbitMQ服务的启动、停止和状态检查。 安装过程通常包括以下步骤: 1. **验证环境**: 检查操作系统版本、内存和磁盘空间等,确保满足RabbitMQ和Erlang的最低需求。 2. **安装Erlang...
4. **验证**:安装完成后,打开命令行窗口并输入`erl`,如果Erlang成功安装,你应该能看到Erlang的shell(REPL)启动。 Erlang 25.0版本可能包含以下改进和新特性: 1. **性能优化**:新版本通常会对语言性能进行...
1. **生成释放**:使用`./rebar generate`命令,rebar会生成一个包含所有应用和依赖的可启动的Erlang节点。 2. **配置释放**:在`rel`目录下的`sys.config`文件中,配置你的应用程序参数。 3. **启动项目**:在...
8. **验证安装**:最后,启动Erlang shell(`erl`命令),如果成功,你应该能看到Erlang的欢迎信息。 请注意,这个过程可能会因不同的操作系统(如Linux、macOS、Windows)而略有差异。在Windows环境下,你可能需要...
4. 启动和管理RabbitMQ:使用RabbitMQ的命令行工具启动、停止和监控服务。 5. 集成应用:将RabbitMQ集成到现有的应用程序中,通过AMQP协议进行通信。 了解这些知识点后,开发者可以有效地利用Erlang 21.2 和 ...
5. **REPL(Read-Eval-Print Loop)**:Erlang shell的使用,它是学习和测试Erlang代码的重要工具。 6. **实际应用案例**:可能包含Erlang在实时系统、网络通信、数据库或Web服务等领域的应用示例。 这两本书结合...
9. **开发工具与实践**:Erlang的开发环境如Eclipse插件(ErlyDTL)、文本编辑器集成、Git版本控制,以及测试框架如eunit和CT(Common Test)。 综上所述,这份PPT将为学习者提供一个深入了解Erlang高级特性和实际...
应用章节则阐述了如何定义和组织应用,包括应用的概念、回调模块、资源文件、目录结构、应用控制器、加载和卸载、启动和停止、配置和应用启动类型。 分布式应用章节讨论了如何定义和指定分布式应用,以及如何处理...
顺序编程是 Erlang 编程语言的基础,用户可以使用 Erlang Shell 编写和运行顺序编程代码。顺序编程是指按照顺序执行的编程方式,用户可以使用各种运算符号和函数来实现不同的计算任务。 3. 模块和函数 模块和函数...
3. 验证安装:安装完成后,可以在命令行输入"erl"来启动Erlang shell,如果出现Erlang的欢迎信息,说明安装成功。 Erlang与RabbitMQ的关系:RabbitMQ是一个开源的消息代理和队列服务器,广泛用于处理异步任务和实现...
这种即时反馈的特性使得Erlang Shell成为学习和测试Erlang代码的理想场所。 更复杂的数学运算也能轻松处理,比如`(42+77)*66/3.`,Erlang Shell能够正确解析并执行加、减、乘、除等运算,返回结果`2618.00`。这展示...
- **启动脚本**:`.sh` 或其他脚本文件,用于启动和停止 Erlang 项目。 - **README** 或其他文档:可能包含有关如何运行、测试和理解示例的说明。 学习这个 "erlang mochiweb-test demo",你可以深入理解 Erlang ...