`
美洲豹
  • 浏览: 2924 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

用shell脚本控制Erlang Application的启动和停止

阅读更多
一般就用下面两个参数
./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]).
 
分享到:
评论
1 楼 mryufeng 2009-06-05  
随便抄个 ejabberd或者 rabbitmq的就好了

相关推荐

    Erlang入门:构建application练习2

    在Erlang中,"Application"是一个组织代码的机制,它提供了模块之间的依赖管理和启动/停止控制。创建一个Erlang Application,你需要遵循以下步骤: 1. **项目结构**:一个标准的Erlang Application通常包含以下...

    Erlang入门:构建application练习5(监督树)

    在Erlang中,"应用"(application)是组织代码的基本单元,它包含了模块、配置文件以及启动和停止应用程序的逻辑。在这个"Erlang入门:构建application练习5(监督树)"中,我们将探讨如何构建一个包含监督树的应用,...

    Erlang/OTP Application完整例子

    Erlang/OTP Application完整例子,含代码和二进制,对于学习Erlang/OTP Application很有帮助。 配套文章http://blog.csdn.net/mycwq/article/details/12610677

    自动化部署EMQX Shell脚本

    5. **创建启动脚本**:编写一个启动脚本来管理EMQX的服务,包括启动、停止、重启等操作。通常,这个脚本会利用Erlang的`erl`命令来启动节点,并确保其在后台运行。 6. **系统服务化**:将EMQX的启动脚本注册为系统...

    Erlang Run-Time System Application

    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入门:构建application练习4(进程link的作用)

    它允许开发者构建出能够优雅处理错误和异常的分布式系统,这是Erlang在高可用性和容错性领域中的强大之处。然而,使用`link`也需要注意,不当的链接可能导致进程意外退出,因此在设计系统时应谨慎考虑进程间的链接...

    Erlang_win64_24.1.rar

    安装RabbitMQ时,同样需要确保已将Erlang的路径添加到PATH环境变量,因为RabbitMQ的启动脚本会依赖Erlang的环境。 一旦RabbitMQ安装完成,可以通过启动RabbitMQ服务器,然后使用管理控制台或者客户端工具来创建...

    Erlang和RabbitMQ安装包

    安装完成后,需要配置RabbitMQ以满足具体应用需求,并确保正确启动和管理服务。 总结来说,Erlang和RabbitMQ是构建高并发、分布式系统的重要工具,RabbitMQ利用Erlang的强大特性提供了稳定、高效的消息传递服务。...

    erlang25.0 windows版本

    4. **验证**:安装完成后,打开命令行窗口并输入`erl`,如果Erlang成功安装,你应该能看到Erlang的shell(REPL)启动。 Erlang 25.0版本可能包含以下改进和新特性: 1. **性能优化**:新版本通常会对语言性能进行...

    RabbitMQ自动安装脚本

    5. **启动/停止脚本**: 用于控制RabbitMQ服务的启动、停止和状态检查。 安装过程通常包括以下步骤: 1. **验证环境**: 检查操作系统版本、内存和磁盘空间等,确保满足RabbitMQ和Erlang的最低需求。 2. **安装Erlang...

    rebar工具开发erlang工程项目和发布erlang工程项目

    1. **生成释放**:使用`./rebar generate`命令,rebar会生成一个包含所有应用和依赖的可启动的Erlang节点。 2. **配置释放**:在`rel`目录下的`sys.config`文件中,配置你的应用程序参数。 3. **启动项目**:在...

    erlang安装帮助包

    8. **验证安装**:最后,启动Erlang shell(`erl`命令),如果成功,你应该能看到Erlang的欢迎信息。 请注意,这个过程可能会因不同的操作系统(如Linux、macOS、Windows)而略有差异。在Windows环境下,你可能需要...

    erlang21.2 和 rabbitmq_server-3.7.13

    4. 启动和管理RabbitMQ:使用RabbitMQ的命令行工具启动、停止和监控服务。 5. 集成应用:将RabbitMQ集成到现有的应用程序中,通过AMQP协议进行通信。 了解这些知识点后,开发者可以有效地利用Erlang 21.2 和 ...

    erlang资源

    5. **REPL(Read-Eval-Print Loop)**:Erlang shell的使用,它是学习和测试Erlang代码的重要工具。 6. **实际应用案例**:可能包含Erlang在实时系统、网络通信、数据库或Web服务等领域的应用示例。 这两本书结合...

    erlang高级原理和应用PPT

    9. **开发工具与实践**:Erlang的开发环境如Eclipse插件(ErlyDTL)、文本编辑器集成、Git版本控制,以及测试框架如eunit和CT(Common Test)。 综上所述,这份PPT将为学习者提供一个深入了解Erlang高级特性和实际...

    Erlang_OTP_设计原理(含目录).pdf

    应用章节则阐述了如何定义和组织应用,包括应用的概念、回调模块、资源文件、目录结构、应用控制器、加载和卸载、启动和停止、配置和应用启动类型。 分布式应用章节讨论了如何定义和指定分布式应用,以及如何处理...

    erlang中文基础教程

    顺序编程是 Erlang 编程语言的基础,用户可以使用 Erlang Shell 编写和运行顺序编程代码。顺序编程是指按照顺序执行的编程方式,用户可以使用各种运算符号和函数来实现不同的计算任务。 3. 模块和函数 模块和函数...

    Erlang Windows 64位 安装包

    3. 验证安装:安装完成后,可以在命令行输入"erl"来启动Erlang shell,如果出现Erlang的欢迎信息,说明安装成功。 Erlang与RabbitMQ的关系:RabbitMQ是一个开源的消息代理和队列服务器,广泛用于处理异步任务和实现...

    erlang 中文基础教程

    这种即时反馈的特性使得Erlang Shell成为学习和测试Erlang代码的理想场所。 更复杂的数学运算也能轻松处理,比如`(42+77)*66/3.`,Erlang Shell能够正确解析并执行加、减、乘、除等运算,返回结果`2618.00`。这展示...

    erlang mochiweb-test demo

    - **启动脚本**:`.sh` 或其他脚本文件,用于启动和停止 Erlang 项目。 - **README** 或其他文档:可能包含有关如何运行、测试和理解示例的说明。 学习这个 "erlang mochiweb-test demo",你可以深入理解 Erlang ...

Global site tag (gtag.js) - Google Analytics