启动、停止、重新加载


你可以通过 game/ 路径中的 evennia.py 程序控制Evennia。下面将描述各种管理选项,你可以不带任何参数运行该程序,或使用menu参数获取选项菜单。
python evennia.py menu


启动Evennia

Evennia由两部分组成:Evennia服务器和接入程序。简而言之,服务器负责运行mud。它处理所有与游戏有关的事务,但只关心玩家所拥有的,而不关心玩家是如何连接到服务器的。而接入程序是与玩家建立连接的大门,它知道所有和telnet、ssh、webclient等协议有关的东西,但对游戏知之甚少。这两者对一个有效的mud游戏来说都是必须的。
python evennia.py start
上面这个命令可以同时启动接入程序和服务器,并将日志写入 game/log 中的日志文件。

如果你希望直接在终端上看到错误信息及其他消息(这适用于快速调试你的代码),你可以使用-i(interactive 交互)参数:
python evennia.py -i start
这将以交互模式启动服务器,而接入程序依然将日志写入文件。这通常符合你的需求,除非你想调试接入程序。

你也可以从依次启动这两个组件。
python evennia.py start server
python evennia.py start portal
这两个命令都可以分别加上 -i 参数,让它们以交互方式启动,这样就可以在终端上显示日志,而不是写入日志文件。


重新加载

重新加载意味着服务器程序关闭然后再重启。在游戏中,你可以使用默认命令中的 @reload 命令来重新加载服务器。游戏中的每个人都会看到一条相关的消息,所有玩家的游戏都将因服务器重新加载而暂停。由于他们是连接到接入程序的,所以他们的连接不会丢失。

重新加载类似于一个“热启动”,它会重新初始化Evennia的所有代码,但不终止“持久化”的脚本。它还会调用所有对象的 at_server_reload() 函数,在这里你可以保存那些你需要的环境属性。

你也可以在游戏之外重新加载服务器(在Windows中不可用,除非你使用Python 2.7):
python evennia.py reload
当你测试的新功能发生语法错误并导致服务器回溯时,这很有用。在你修改了代码bug之后,可以立即通过终端命令行来重新加载(或启动)以恢复服务器。


重置

重置相当于“冷启动”服务器。它会重新启动,但会表现出好像被完全关闭过一样。在游戏中你可以使用 @reset 命令来启动重置程序。与“真正的”关机不同,没有玩家会在重置期间被断开。但重置会清除所有的非持久性的脚本,还会调用 at_server_shutdown() 函数。举个例子,在开发过程这是一个清除不安全的脚本的好方法。

重置相当于
python evennia.py stop server
python evennia.py start server


关闭

关闭命令会完全关闭Evennia,包括服务器和接入程序。所有玩家会被踢出游戏,系统将被保存并彻底关掉。在游戏中你可以使用 @shutdown 命令来启动关闭程序。

在命令行中你可以这样做
python.py evennia.py stop
你将看到服务器和接入程序正在关闭的消息。所有玩家都将看到一条关闭信息,然后被断开连接。


(原文:https://github.com/Evennia/evennia/wiki/Start Stop Reload    翻译:卢铱俊)